Subject: 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:
http://www.topxml.com/code/default.asp?p=3&id=v20010323001030
or at:
http://www.dpawson.co.uk/xsl/sect2/N6077.html#d177e20
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
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
__________________________________________________
Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More
http://faith.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|