Выбор текущего имени элемента в 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
.