|
Subject: Re: [xsl] Filtering nodes From: Joerg Heinicke <joerg.heinicke@xxxxxx> Date: Tue, 14 May 2002 01:22:33 +0200 |
<xsl:template match="Record">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template><!-- empty records --> <xsl:template match="Record[not(@*)]"> <xsl:apply-templates/> </xsl:template>
<!-- records with leaves -->
<xsl:template match="Record[Leaf]">
<Leaf Name="{@Name}"/>
</xsl:template>Hello group,
I have a simple XML like
<Root> <Record Name="R1"> <Record Name="L1"> <Leaf Name="text"/> </Record> <Record> <Record Name="L2"> <Leaf Name="text"/> </Record> </Record> <Record Name="R2"> <Record> <Record> <Record> <Record Name="LL1"> <Leaf Name="text"/> </Record> <Record Name="LL2"> <Leaf Name="text"/> </Record> </Record> </Record> </Record> </Record> </Root>
To transform it to a simple structure like <Record Name="R1"> <Leaf Name="L1"/> <Leaf Name="L2"/> <Record Name="R2> <Leaf Name="LL1"/> <Leaf Name="LL2"/> </Record> </Record>
Could any one suggest ways to filter the dummy record nodes under R1 and R2 and display the Leaf nodes under R1 and R2.
For displaying the field nodes under a specific record I used the keys function to select the "Record" elements with a "Leaf" element and having attribute "Name" value "text" as follows: <xsl:key name="leaf-nodes" match="Record" use="Leaf/@Name"/>
This is fine for R2 but fails for R1 in which case it is diplaying all the fields in R2 also.
Could some correct the keys expression/suggest a better way for doing this.
Thanks and regards, Suresh
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Filtering nodes, Suresh Babu | Thread | [xsl] limitations of xsl:comment, Ben Leighton |
| Re: [xsl] XSLT/XPath 2.0 (was "Iden, Wendell Piez | Date | Re: [xsl] Losing xsl:param values w, J.Pietschmann |
| Month |