Если 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'
.