Hi,
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="try.xsl"?>
<books>
<book name="name2">
<otherdetails price="10"/>
</book>
<book name="name1">
<otherdetails price="20"/>
</book>
</books>
and an xsl for the above as:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="/">
<xsl:for-each select="books/book/otherdetails[(_at_)price='10']">
<xsl:copy-of select="parent::*"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
This gives the output as:
<?xml version="1.0" encoding="UTF-8"?>
<book name="name2">
<otherdetails price="10"/>
</book>
I want to get like this:
<books>
<book name="name2">
<otherdetails price="10"/>
</book>
</books>
i.e. From this paricular selected node, i want to navigate
till the root
node and get the output.
I will not know how many more ancestors are there to reach
the root node.
Can you please help me out for doing the same.
Will changing the approach to
<xsl:template match="books">
<xsl:copy>
<xsl:apply-templates select="@* | book[otherdetails/@price = '10']" />
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
be a suitable solution?
Cheers,
Jarno
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list