带有text()序列的XPath AND运算符

时间:2011-10-31 14:47:19

标签: xpath

如果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 :(得分:0)

希望您的.xml包含拼写错误。

您需要或运营商而不是和:

<xsl:value-of select="/ns:Whatever/ns:Tag[ . = 'hello' or . = 'Peter' or . = 'how are you']"/>