#xslt-2.0
#xslt-2.0
Вопрос:
Я пытаюсь получить доступ к значениям из моего XML-файла, используя «title» xpath без использования /Para000_*, потому что _1,_2 является динамическим.
Есть ли какой-либо способ получить доступ к значению без использования номера пункта, пожалуйста, помогите мне, мне нужно значение только «Mango», но я получаю значения «Mango Orange»
У меня есть xml следующим образом:
<Content code="" title="Food" type="Fruits" paraCode="2">
<props>
<para001_2 title="F1">Mango</para001_2>
<para002_2 title="F2">Grape</para002_2>
</props>
</Content>
<Content code="" title="Food" type="Fruits" paraCode="2">
<props>
<para001_2 title="F1">Orange</para001_2>
<para002_2 title="F2">Grape</para002_2>
</props>
</Content>
tried XSLT as follows:
<xsl:variable name="FruitName" select="/Content/props/*[@title = 'F1']"/>
Результат:
Mango
Ответ №1:
Используйте это
<xsl:variable name="FruitName" select="/Content/props/*[@title = 'F1'][not(preceding::Content/props/*[@title = 'F1'])]"/>
Комментарии:
1. Привет, пожалуйста, смотрите выше, я сталкиваюсь с этой проблемой ….. я получаю все значения с заголовком F1
2. Спасибо за помощь, я всегда получаю только первое значение…. как я могу получить второе значение …. т. Е. Оранжевый, потому что мне нужно просмотреть все значения один раз
3. вы можете использовать
for-each select="Content/props/*[@title = 'F1']"
для перебора всех значений
Ответ №2:
Пожалуйста, укажите, на каком основании / условии вы хотите получить доступ к узлу <Content>
Для текущего ввода, чтобы получить доступ к первому узлу title
Решение может быть:
<xsl:value-of select="root/Content/props/*[1][@title = 'F1']"/>