Subject: [xsl] XPatch: ancestor and count From: "Andrey V. Elsukov" <elsukov@xxxxxxxxxxxx> Date: Fri, 1 Oct 2004 09:18:23 +0400 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to put in a variable , G. Ken Holman | Thread | Re: [xsl] XPatch: ancestor and coun, Anton Triest |
[xsl] How to put in a variable the , IceT | Date | RE: [xsl] XPatch: ancestor and coun, Ivan Pedruzzi |
Month |