XPath选择多个标记

鉴于这种简化的数据格式:

<a>
<b>
<c>C1&lt/c>
<d>D1&lt/d>
<e>E1&lt/e>
<f>不要选择此选项&lt/f>
&lt/b>
<b>
<c>C2&lt/c>
<d>D2&lt/d>
<e>E1&lt/e>
<g>不要选择我&lt/g>
&lt/b>
<c>不是这个&lt/c>
<d>也不是这个&lt/d>
<e>绝对不是这个&lt/e>
&lt/a>

如何选择B元素的子元素Cs、Ds和Es

基本上是这样的:

a/b/(c | d | e)

在我自己的情况下,导致选择CDE节点的查询实际上相当复杂,因此我希望避免这样做:

a/b/c | a/b/d | a/b/e

这可能吗

一个正确答案是:

/a/b/*[self::c或self::d或self::e]

请注意这一点

a/b/*[local-name()='c'或local-name()='d'或local-name()='e']

太长且不正确。此XPath表达式将选择以下节点:

电阻:c
不通缉:d
完全不同:e

发表评论