Gripsoft
Gripsoft

Reputation: 2610

selecting current element name in XSLT

I need to output the element name which is being returned after applying the xpath expression for example

<xsl:for-each select="//element">
      <xsl:value-of select="**{elementname}**"></xsl:value-of>
      <xsl:text>:</xsl:text>
      <xsl:value-of select="current()"/>
      <xsl:value-of />
</xsl:for-each>

How can i replace {elementname} to some xpath so that I can get the element name instead of current value

Upvotes: 10

Views: 25785

Answers (1)

Tomalak
Tomalak

Reputation: 338208

<xsl:value-of select="name()" />

Side note: Avoid the // shorthand unless you absolutely have no other possibility. It seems quick and easy, but it isn't - it is computationally very expensive, and 90% of the time you don't need it.

Write a canonical replacement XPath expression whenever you can. Even something as generic as /*/*/node runs much faster than //node.

Upvotes: 18

Related Questions