Как сопоставить значение элемента со значением атрибута в подузле узла-брата - PullRequest
0 голосов
/ 16 марта 2011

Учитывая XML-документ с рядом элементов, которые выглядят так:

<column>
  <question>
  ...
  </question>
  <question>
    <description>Colour</description>
    <choices>
      <choice value="">[Select colour]</choice>
      <choice value="id01">Red</choice>
      <choice value="id02">Green</choice>
      <choice value="id03">Blue</choice>
      <choice value="id04">Yellow</choice>
    </choices>
    <chosen>id02</chosen>
  </question>
</column>

... и (часть) XSL-преобразования, которое выглядит так:

<xsl:for-each select="column/question">
      <xsl:value-of select="description"/>
      <xsl:value-of select="chosen"/>
      <xsl:value-of select="choices/choice[@value='id02']"/>    
</xsl:for-each>

... какой самый лучший или самый простой способ вернуть значение "Грин" без жесткого кодирования этого?Я новичок в этом;это должно быть действительно легко, но я не могу понять, как.Последнее «значение-выбор» в XSL имеет жестко заданный фильтр атрибутов, но я действительно хочу сравнить его со значением каждого в моем документе, что-то вроде где «выбор / выбор [@ значение = /»вопрос / выбрано] "... но потом работает: -)

Опять же, я уверен, что это действительно легко, но часы Googling никуда меня не приводят.Спасибо за вашу помощь и терпение.

1 Ответ

2 голосов
/ 16 марта 2011

Что-то вроде ...

choices/choice[@value=../../chosen]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...