[xsl] Re: How can I get the XPATH of the current node ?

Subject: [xsl] Re: How can I get the XPATH of the current node ?
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Thu, 10 Oct 2002 13:50:58 -0700 (PDT)
--- Louis Meigret  wrote:
> First of all, thanks a lot to Jörg for pointing me to the Muenchian
> method.Relentlessly learning.
> I have another question : I would like to get the Xpath value of the
> current node. I am done some homework and tried this method suggested
> by Jeni Tennison : 
> « To get an XPath that's guaranteed to be unique, you need to use the
> index of the element within its parent rather than its
> attributevalues.
> An easy way is to use recursion with the ancestor-or-self axis:
>   <xsl:for-each select="ancestor-or-self::*">
>     <xsl:text />/<xsl:value-of select="name()" />
>     <xsl:text />[<xsl:number />]<xsl:text />
>   </xsl:for-each>
> Cheers,
> Jeni »
> Unfortunately, this does not print any number between the square
> brackets (with Xalan). I thought of adding value="position()", but
> this
> would be the position within this context (the for-each), not very
> useful.
> Any suggestion to solve what would be useful debugging information
> (in
> my case) ?
> Thanks
> Louis

Hi Louis,

Do have a look at:


or at:


This is a more complete solution, which will generate the XPath
expression not only for an element but for any type of node -- text,
PI, comment, root, attribute and namespace.

Also, positional predicates are not used when they are not necessary,
which results in a more compact and readable XPath expression


Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Current Thread