This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Getting the XPath of a node


--- Mike Brown <mike at skew dot org> wrote:

 
> Dennis wrote:
> > Hi All,
> > 
> > Is there any way to get the XPath of a particular
> > element and attribute in match template???
> > 
> > Say if I have following XML:
> > <Person id="12345">
> >   <Name>Dennis</Name>
> >   <Company>Netscape</Company>
> >   <Address>Mountain View</address>
> >   <Email>dennis@netscape.com</Email>
> > </Person>
> > 
> > ----The XSL to print XPath---
> > <xsl:template match="Company">
> > //Print the XPath of Company as /Person/Company
> > </xsl:template>
> > More templates corresponding to each element.
> > 
> > How do I do this...any thoughts???
> 
>   <xsl:for-each select="ancestor::*">
>     <xsl:value-of select="concat('/',name())"/>
>   </xsl:for-each>
>   <xsl:value-of select="concat('/',name())"/>
> 
> If the current node is an attribute, change that last '/' to '/@'

This will produce an XPath expression, which (while covering the node)
is not unique and probably returns some other nodes in addition to the
current node.

An XPath expression, which evaluates to a single node, must include
predicates showing the positions of the elements forming the path.





=====
Cheers,

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

__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]