|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] XPatch: ancestor and count
Hi, I have some XML file, for example: ======= <menu> <menuitem title="1"/> <menuitem title="2"> <menuitem title="2.1"/> </menuitem> <menuitem title="3"> <menuitem title="3.1"/> <menuitem title="3.2"/> <menuitem title="3.3"/> <menuitem title="3.4"> <menuitem title="3.4.1"/> <menuitem title="3.4.2"/> </menuitem> <menuitem title="3.5"/> <menuitem title="3.6"> <menuitem title="3.6.1"/> <menuitem title="3.6.2"/> </menuitem> </menuitem> </menu> ====== and XLS transform: ====== <xsl:template match="menu"> <table class="menu"> <tr><td><xsl:value-of select="count(ancestor::*)"/></td><td> </td></tr> <xsl:for-each select="child::menuitem"> <tr><td><xsl:value-of select="count(.//ancestor::*)"/></td><td> <xsl:value-of select="@title"/></td></tr> </xsl:for-each> </table> </xsl:template> ====== In result the following: ====== 1 - root element 2 1 - root, menu 3 2 - root, menu, menuitem "2" 5 3 - root, menu, menuitem "3", menuitem "3.4" and what??? ====== http://www.w3.org/TR/1999/REC-xpath-19991116 : * the ancestor axis contains the ancestors of the context node; the ancestors of the context node consist of the parent of context node and the parent's parent and so on;.. * Function: number count(node-set) The count function returns the number of nodes in the argument node-set. ====== Why the result is 5? It should be equal 4, or not? PS. I use Perl-5.8.5 + LibXML + LibXSLT.. -- Best regards, Andrey V. Elsukov
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Cast Your Vote
We need your help – Vote for DataDirect XML Products!
Winners and finalists announced at SOA World Conference in November. 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
|







