tags:

views:

126

answers:

1

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

+3  A: 
<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.

Tomalak
and local-name() do get the name without namespace
dkackman
Thanks a lot for suggestions but i just put a dummy expression to explain my question but yup i am abs agree with you on this :)
Gripsoft
Never mind, I say something about the `//` almost every time I see it. ;)
Tomalak