Выбор текущего имени элемента в XSLT

Мне нужно вывести имя элемента, которое возвращается после применения выражения 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>

Как я могу заменить {elementname} на некоторый xpath, чтобы получить имя элемента вместо текущего значения

Ответ 1

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

Примечание: избегайте сокращения //, если у вас нет никакой другой возможности. Это кажется быстрым и легким, но это не так - это вычислительно дорого, и в 90% случаев вам это не нужно.

Напишите каноническую замену выражения XPath всякий раз, когда сможете. Даже что-то общее /*/*/node выполняется намного быстрее, чем //node.