在XSLT中选择当前元素名称

Gri*_*oft 10 xslt xpath

我需要输出在应用xpath表达式后返回的元素名称

<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>
Run Code Online (Sandbox Code Playgroud)

如何替换{elementname}某些xpath,以便我可以获取元素名称而不是当前值

Tom*_*lak 16

<xsl:value-of select="name()" />
Run Code Online (Sandbox Code Playgroud)

旁注://除非你绝对没有其他可能性,否则请避免使用速记.它似乎快速而简单,但它不是 - 它在计算上非常昂贵,并且90%的时间你不需要它.

尽可能写一个规范的替换XPath表达式.甚至像通用的东西 /*/*/node跑得快得多//node.

  • 和local-name()确实得到没有命名空间的名称 (4认同)