[Home] [By Thread] [By Date] [Recent Entries]
Thanks, I'll work through these tonight. Appreciate your help. Mark -----Original Message----- From: Imsieke, Gerrit, le-tex Sent: Tuesday, September 04, 2012 3:24 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: extracting and removing an element nested at different levels 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="Item" mode="suppress-item" /> <xsl:template match="* | @*" mode="#all">
<xsl:copy>
<xsl:apply-templates select="@*, node()" mode="#current"/>
</xsl:copy>
</xsl:template>Second solution, single mode, for-each, identity 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="Item" /> <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. And both wont process nested Lists in Items. Gerrit On 2012-09-04 23:56, Mark wrote: I have XML consisting of <Item> elements that have nested <Item> elements at various depths within the tree, in its simplest form something like:
Registergericht / Commercial Register: Amtsgericht Leipzig Registernummer / Registration Number: HRB 24930 Geschdftsf|hrer: Gerrit Imsieke, Svea Jelonek, Thomas Schmidt, Dr. Reinhard Vvckler
|

Cart



