Subject: RE: Attempting *not* to copy certain nodes
From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx>
Date: Sun, 11 Jan 2004 20:50:22 +0100
|
> -----Original Message-----
> From: 3rett 3onfield
<snip />
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/>
> <xsl:template match="Root">
> <xsl:apply-templates select="MapSecuritiesResult"/>
> </xsl:template>
>
Two ways to correct this here:
- either apply-templates selecting 'MapSecuritiesResult/Security'
- insert a new template matching 'MapSecuritiesResult' and fire templates
from there
In the first case, you can select the desired nodes at once like
<xsl:apply-templates
select="MapSecuritiesResult/Security[Outcome='Success']" />
> <xsl:template match="Security">
> <xsl:copy>
> <xsl:apply-templates select="Outcome[Success]"/>
Then you can replace this by:
<xsl:apply-templates />
But if you want the child elements to be output as XML elements you'll have
to define matching copy-templates for all child nodes, or they'll simply be
output as text nodes in the result.
Alternately, define the template as:
<xsl:template match="Security">
<xsl:copy-of select="." />
</xsl:template>
Which will simply copy the matching Security nodes to the result document.
Hope this helps!
Cheers,
Andreas
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|