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> </td><td> </td><td> </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