XSL Foreach - получение ценности - PullRequest
2 голосов
/ 29 сентября 2011

Вот фрагмент XML, который есть в каждой записи:

<MT N="usage" V="something"/>
<MT N="usage" V="something else"/>

Я пытаюсь отобразить все эти значения V для каждой записи с помощью XSLT, но у меня возникают проблемы, связанные с правильным значением.1004 *

<xsl:for-each select="MT[@N = 'usage']/@V">
    <xsl:value-of select="V"/>
    11
</xsl:for-each>

Выводит «1111», но значение V не отображается.Как я нацеливаюсь на это?

Приветствия

Ответы [ 2 ]

5 голосов
/ 29 сентября 2011

select = "V", вероятно, не является узлом.

А как же

<xsl:for-each select="MT[@N = 'practice']">
<xsl:value-of select="@V"/>
11
</xsl:for-each>
1 голос
/ 30 сентября 2011
<xsl:for-each select="MT[@N = 'usage']/@V"> 
    <xsl:value-of select="V"/> 
    11 
</xsl:for-each>

Приведенное выше <xsl:value-of> пытается отобразить значение элемента V, который является дочерним по отношению к текущему узлу.Однако текущий узел является атрибутом, а атрибуты по определению не имеют дочерних элементов.Это проблема, с которой вы столкнулись.

Решение :

<xsl:for-each select="MT[@N = 'usage']/@V"> 
    <xsl:value-of select="."/> 
    11 
</xsl:for-each>

Теперь <xsl:value-of> выводит строковое значение текущего узла - что, вероятно, и предполагалось.

...