[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: FW: How to navigate the tree from a selected node
Subject: Re: FW: How to navigate the tree from a selected node to theroot?
From: Joerg Heinicke <joerg.heinicke@xxxxxx>
Date: Tue, 22 Oct 2002 07:05:38 +0200
|
Hello Nirmala,
I need a little enhancement.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="try.xsl"?>
<books>
<book name="name2">
<otherdetails price="10"/>
<otherdetails price="25"/> <!-- Newly added -->
</book>
<book name="name1">
<otherdetails price="20"/>
<otherdetails price="35"/> <!-- Newly added -->
</book>
</books>
Now applying the stylesheet as you have mentioned, I get the output as
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="try.xsl"?>
<books>
<book name="name2">
<otherdetails price="10"/>
<otherdetails price="25"/>
</book>
</books>
My requirement is that I want to get
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="try.xsl"?>
<books>
<book name="name2">
<otherdetails price="10"/>
</book>
</books>
The sibling of otherdetails also should not be selected.
Hence I tried the stylesheet like
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="books">
<xsl:copy>
<xsl:apply-templates select="@* | book[otherdetails/@price = '10']" />
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:if test="node()/otherdetails/@price='10'"> <!-- I know, this is not
correct, but i need something like this -->
remove the <xsl:if/>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>
and add a further template matching on book:
<xsl:template match="book">
<xsl:copy>
<xsl:apply-templates select="@* | otherdetails[@price = '10']"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Basically, I should be able to differentiate within the template
match="@*|node(), whether
it is an attribute or a book node. If it is a book node and if
otherdetails/@price is not 10,
then that should not be included in the output xml.
Can you please tell me how could I do that?
Thanks in advance,
Best Regards,
Nirmala
So it's only a further special case in the identity transformation.
Hope this helps,
Joerg
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
RSS 2.0 |
|
Atom 0.3 |
|
|