Я хочу получить значение определенного узла, указанного его атрибутом id
. Но поведение моего анализатора XSL, Saxon, не так, как я ожидал, что он сработает.Сравнение значений атрибутов в XPath
Это мой код XSL:
<xsl:template match="synonyme">
<xsl:element name="corr">
<xsl:value-of select="@connecteur" />
<xsl:value-of select="/liste/connecteur[@[email protected]]/forme[1]" />
</xsl:element>
</xsl:template>
Я просто совпадающий с именем тега synonyme
, который имеет атрибут connecteur
. Мой код выводит значение этого атрибута.
Я также хочу вывести значение другого узла, который имеет атрибут id
, соответствующий атрибуту connecteur
текущего совпадающего тега synonyme
. Но результаты этого запроса не найдены, второй value-of
всегда имеет пустой вывод.
Если я пишу, например. [@id='c160']
, где c160
- это то же самое, что выводится первым value-of
, он работает! Но не по сравнению с @attribute
моего совпадающего узла. Как я могу это исправить?
XML-в основном
<liste><connecteur id="c160"><forme>foo</forme></connecteur>
<connecteur id="c161"><synonyme connecteur="c160" /></connecteur>
</liste>
и ожидаемый выход вместо synonyme
является <corr>c160 foo</corr>
.