#xslt #xslt-1.0 #google-search-appliance
#xslt #xslt-1.0 #google-поиск-устройство
Вопрос:
Вот фрагмент XML, который содержится в каждой записи:
<MT N="usage" V="something"/>
<MT N="usage" V="something else"/>
Я пытаюсь отобразить все эти значения V для каждой записи с помощью XSLT, но у меня возникают проблемы с поиском правильного значения.
<xsl:for-each select="MT[@N = 'usage']/@V">
<xsl:value-of select="V"/>
11
</xsl:for-each>
Выводится «1111», но значение V не отображается. Как мне это настроить?
Приветствия
Ответ №1:
select=»V», вероятно, не является узлом.
Как насчет
<xsl:for-each select="MT[@N = 'practice']">
<xsl:value-of select="@V"/>
11
</xsl:for-each>
Ответ №2:
<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>
выводится строковое значение текущего узла, что, вероятно, и было задумано.