|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: How to navigate the tree from a selected node to t
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[@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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








