Братцы, как при разобе дерева в xslt узнать имя текущего элемента.
В конструкции типа <xsl:for-each>
В цикле обрабатываются элементы
нужно выцеплять имя текущего и применять правила
Но:
template match и template name не предлагать,
функция {name()} не работает.
Здравствуйте ketoff, Вы писали:
K>Братцы, как при разобе дерева в xslt узнать имя текущего элемента.
K>В конструкции типа <xsl:for-each>
K>В цикле обрабатываются элементы
K>нужно выцеплять имя текущего и применять правила
K>Но:
K>template match и template name не предлагать,
K>функция {name()} не работает.
Все работает. Дело в том, что ты, видимо, ошибся — фигурные скобки используются в шаблононах значений аттрибутов.
Вот код. Можешь проверить.
<?xml version="1.0" encoding="utf-8"?>
<root>
<a>text_01</a>
<b>text_02</b>
</root>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<xsl:for-each select="root/*">
<xsl:if test="name() = 'a'">
<xsl:text>This is a-element</xsl:text>
</xsl:if>
<xsl:element name="p">
<xsl:text>Name of this element: </xsl:text>
<xsl:value-of select="name()"/>
</xsl:element>
</xsl:for-each>
</html>
</xsl:template>
</xsl:stylesheet>
Удачи.