XSLT
От: ketoff  
Дата: 11.10.02 16:02
Оценка:
Братцы, как при разобе дерева в xslt узнать имя текущего элемента.
В конструкции типа <xsl:for-each>
В цикле обрабатываются элементы
нужно выцеплять имя текущего и применять правила
Но:
template match и template name не предлагать,
функция {name()} не работает.
Re: XSLT
От: Captain Crocus  
Дата: 12.10.02 12:14
Оценка:
Здравствуйте 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>


Удачи.
Re: XSLT
От: ketoff  
Дата: 23.10.02 07:15
Оценка: 3 (1)
Здравствуйте ketoff, Вы писали:

K>Братцы, как при разобе дерева в xslt узнать имя текущего элемента.

K>В конструкции типа <xsl:for-each>
K>В цикле обрабатываются элементы
K>нужно выцеплять имя текущего и применять правила
K>Но:
K>template match и template name не предлагать,
K>функция {name()} не работает.

Отвечаю на свой же вопрос:
<xsl:template match="root">
<xsl:for-each>
<tr>
<td>
<xsl:node-name/>
</td>
<td>
<input>
<xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute>
</input>
</td>
</tr>
</xsl:for-each>
</xsl:template>
Необходимая конструкция <xsl:node-name/>
Спаибо всем за помощь :)
Re[2]: XSLT
От: ketoff  
Дата: 29.10.02 12:12
Оценка:
2Captain Crocus
Большое спасибо Ваш код работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.