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]

Re: === Identifying a unique node in a DOM tree ===


Jonathan Asbell wrote:
> 
...

> I want to be able to ask the node.."who are you" and it would reply "I am
> currently /.people.person.name.John"
> 

David did come up with the solution to this as a one-liner (which I
luckily saw before I could post my own particularly horrid and laborious
solution).

Just for completeness, I packaged his solution into two call-by-name
templates (for attributes and templates) which I've re-posted below only
because the xsl-list archive seems to be down right now.

Hope this helps -

Francis.



<!-- paths from elements -->
<xsl:template name="elementPath">
  <xsl:for-each select="(ancestor-or-self::*)">/*[<xsl:value-of
    select="1+count(preceding-sibling::*)"/>]</xsl:for-each>
</xsl:template>

<!-- paths from attributes -->
<xsl:template name="attributePath">
  <xsl:for-each select="parent::*">
    <xsl:call-template name="elementPath" />
  </xsl:for-each>
  <xsl:text>/@</xsl:text>
  <xsl:value-of select="name(.)"/>
</xsl:template>


 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]