|
Subject: Re: [xsl] extracting and removing an element nested at different levels From: "Mark" <mark@xxxxxxxxxxxx> Date: Tue, 4 Sep 2012 21:52:01 -0700 |
Two possible solutions using identity templates. The first one uses a dedicated mode for the nested items:
<xsl:template match="List">
<xsl:copy>
<xsl:apply-templates select=".//Item"/>
</xsl:copy>
</xsl:template> <xsl:template match="Item">
<xsl:copy>
<xsl:apply-templates mode="suppress-item"/>
</xsl:copy>
</xsl:template> <xsl:template match="* | @*" mode="#all">
<xsl:copy>
<xsl:apply-templates select="@*, node()" mode="#current"/>
</xsl:copy>
</xsl:template> <xsl:template match="List">
<xsl:copy>
<xsl:for-each select=".//Item">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:for-each>
</xsl:copy>
</xsl:template> <xsl:template match="* | @*">
<xsl:copy>
<xsl:apply-templates select="@*, node()" mode="#current"/>
</xsl:copy>
</xsl:template>Both wont leave an empty ElementA though because of the contained text nodes.
I have XML consisting of <Item> elements that have nested <Item> elements at various depths within the tree, in its simplest form something like:
<List> <Item> <ElementA> <Item> <ElementB/> </Item> </ElementA> </Item> </List>
That I want to render as:
<List> <Item> <ElementA/> </Item> <Item> <ElementB/> </Item> </List>
Is there a general technique I can use to remove nested <Item> elements whatever their depth and place all <Item> elements at the same level within the <List>? Thanks, Mark
-- Gerrit Imsieke Geschdftsf|hrer / Managing Director le-tex publishing services GmbH Weissenfelser Str. 84, 04229 Leipzig, Germany Phone +49 341 355356 110, Fax +49 341 355356 510 gerrit.imsieke@xxxxxxxxx, http://www.le-tex.de
Registergericht / Commercial Register: Amtsgericht Leipzig Registernummer / Registration Number: HRB 24930
Geschdftsf|hrer: Gerrit Imsieke, Svea Jelonek, Thomas Schmidt, Dr. Reinhard Vvckler
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] extracting and removing a, Mark | Thread | Re: [xsl] extracting and removing a, Imsieke, Gerrit, le- |
| Re: [xsl] Bookmarks in xsl, G. Ken Holman | Date | Re: [xsl] extracting and removing a, Imsieke, Gerrit, le- |
| Month |