Charles,
I don't think you can combine 2 axes (such as parent and
preceding-sibling) in just one xpath statement. I think you will need 2 steps.
First, make the parent the context node, and then refer to the parent's
preceding-sibling, like this:
<xsl:for-each select="parent::node()">
<!--Inside this for-each, the parent is now the context node-->
<xsl:variable name="elementCount"
select="count(preceding-sibling::node())"/>
</xsl:for-each>
Hope this helps,
Andy
-----Original Message-----
From: cknell(_at_)onebox(_dot_)com [mailto:cknell(_at_)onebox(_dot_)com]
Sent: Monday, February 03, 2003 4:22 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] XPath question
Every time I think I have a good grasp on XPath, it slips between my fingers.
Consider the following XML:
<menu>
<item title="Vegetables">
<item title="tubers">
<item title="potatoes">
<item>Idaho</item>
<item>Maine</item>
<item>Russet</item>
<item>Yam</item>
</item>
</item>
</item>
<item title="Fruits">
<item title="Apples>
<item>Fuji</item>
<item>Granny Smith</item>
<item>Rome</item>
</item>
<item>Milk</item>
</menu>
I have an HTML application for which I must flatten out the hierachy of this
XML document, yet still maintain a link to the parent element for each child
element. To this end I have decided to number each element according to its
position in the hierarachy and use a "dot-delimitted" format for each element's
id (i.01.03.11). I have struggled in vain today to come up with an XPath
expression which would tell me how many elements are on the preceding-sibling
axis of the parent of a given node. Can anyone straighten me out on this?
Thanks.
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list