Оператор XPath AND с последовательностью text () - PullRequest
1 голос
/ 31 октября 2011

Если XML определяется следующим образом:

<xs:complexType name="Whatever" ....>
  <xs:sequence>
    <xs:element name="Tag" type="xs:string" minOccurs="0" maxOccurs="unbounded">
  </xs:sequence>
</xs:complextType>

документ может содержать:

<ns:Whatever>
  <ns:Tag>hello</ns:Tag>
  <ns:Tag>Peter</ns:Tag>
  <ns:Tag>how are you</ns:Tag>
</ns:Watever>

или может содержать:

<ns:Whatever>
  <ns:Tag>hello</ns:Tag>
</ns:Watever>

КакМожно ли написать выражение XPath, чтобы найти элементы XML Whatever, объединяющие элементы Tag, сравнивающие text() с оператором AND?

Запись /ns:Whatever[ns:Tag/text() = ('hello','Peter','how are you')] соответствует обоим вышеупомянутым документам.Я хочу совпадать только тогда, когда текст Tag равен 'hello' И 'Peter' И 'how are you'.

1 Ответ

0 голосов
/ 31 октября 2011

Надеюсь, ваш .xml содержит опечатки.

Вам нужен оператор or, а не and:

<xsl:value-of select="/ns:Whatever/ns:Tag[ . = 'hello' or . = 'Peter' or . = 'how are you']"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...