Subject: Re: [xsl] XPatch: ancestor and count From: Anton Triest <anton@xxxxxxxx> Date: Fri, 01 Oct 2004 11:27:59 +0200 |
1 - root elementand menuitem "3.6"?
2 1 - root, menu
3 2 - root, menu, menuitem "2"
5 3 - root, menu, menuitem "3", menuitem "3.4" and what???
<xsl:for-each select="child::menuitem">In this context, './/' means 'descendant-or-self::*', right? (I'm not sure, the use of '//' still confuses me a bit). But it explains the output:
<tr><td><xsl:value-of select="count(.//ancestor::*)"/></td><td>
<xsl:value-of select="@title"/></td></tr>
</xsl:for-each>
menuitem 2: - descendant-or-self::* contains 2 nodes (menuitem 2 and 2.1). - that set has 3 ancestors: root, menu and menuitem 2
Cheers, Anton
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 -> |
---|---|---|
[xsl] XPatch: ancestor and count, Andrey V. Elsukov | Thread | RE: [xsl] XPatch: ancestor and coun, Michael Kay |
Re: [xsl] Problem with case-sensiti, Werner, Wolfgang | Date | Re: [xsl] Xalan giving TransformerE, David Carlisle |
Month |