xsl-list
[Top] [All Lists]

RE: Attempting *not* to copy certain nodes

2004-01-11 12:50:22
-----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