Re[2]: [xsl] XPatch: ancestor and count

Subject: Re[2]: [xsl] XPatch: ancestor and count
From: "Andrey V. Elsukov" <elsukov@xxxxxxxxxxxx>
Date: Fri, 1 Oct 2004 10:59:06 +0400
Hi, Ivan Pedruzzi,

Friday, October 1, 2004, 10:10:09 AM:
IP> You may try with LibXSLT to see what path comes out.

patch                               name    ancestor count
/xml-chunk/menu                     1                    2
/xml-chunk/menu                     2                    2
/xml-chunk/menu/menuitem            2.1                  3
/xml-chunk/menu                     3                    2
/xml-chunk/menu/menuitem            3.1                  3
/xml-chunk/menu/menuitem            3.2                  3
/xml-chunk/menu/menuitem            3.3                  3
/xml-chunk/menu/menuitem            3.4                  3
/xml-chunk/menu/menuitem/menuitem   3.4.1                4
/xml-chunk/menu/menuitem/menuitem   3.4.2                4
/xml-chunk/menu/menuitem            3.5                  3
/xml-chunk/menu/menuitem            3.6                  3
/xml-chunk/menu/menuitem/menuitem   3.6.1                4
/xml-chunk/menu/menuitem/menuitem   3.6.2                4
                        
/xml-chunk/menuitem                 1                    2
/xml-chunk/menuitem                 2                    3
/xml-chunk/menuitem                 3                    5 < ????
                                                        ^^^  ????
XSL:
<xsl:template match="menu">
 <table class="menu">
   <tr><td>patch</td><td>name</td><td>ancestor count</td></tr>
   <xsl:for-each select="descendant::menuitem">
    <tr><td>
     <xsl:for-each select="ancestor::*">
      <xsl:text>/</xsl:text>
      <xsl:value-of select="local-name()"/>
     </xsl:for-each></td>
    <td><xsl:value-of select="@title"/></td>
    <td align="right"><xsl:value-of select="count(ancestor::*)"/></td></tr>
   </xsl:for-each>
   <tr><td>&#xA0;</td><td>&#xA0;</td><td>&#xA0;</td></tr>
   <xsl:for-each select="child::menuitem">
     <tr><td>/xml-chunk/menuitem</td>
     <td><xsl:value-of select="@title"/></td>
     <td align="right"><xsl:value-of select="count(.//ancestor::*)"/></td></tr>
   </xsl:for-each>
</xsl:template>

--
Best regards,
Andrey V. Elsukov

Current Thread