我可以压缩检查属性条件值的XPath表达式吗?

时间:2019-04-03 19:34:00

标签: xpath

我有以下XML有效负载:

<fizz>
    <buzz class="foo">
        <whatever/>
    </buzz>
</fizz>

/fizz/buzz[@class]/@class属性的值可以是foobarwhistlefeather。我正在尝试编写一个涵盖所有三种情况的有效XPath表达式。我最好的是:

/fizz/buzz[@class]/@class = 'foo' |
    /fizz/buzz[@class]/@class = 'bar' |
    /fizz/buzz[@class]/@class = 'whistlefeather'

是否有一些“速记”方法可以使它更简洁/更有效(不太冗长)?

2 个答案:

答案 0 :(得分:0)

使用此(所有xpath版本):

/fizz/buzz[@class='foo' or @class='bar' or @class='whistlefeather']

使用xpath> = 2:

/fizz/buzz[@class=("foo", "bar", "whistlefeather")]

答案 1 :(得分:0)

更正@GillesQuenot的答案:

使用任何XPath版本:

/fizz/buzz[@class='foo' or @class='bar' or @class='whistlefeather']

使用XPath 2.0或更高版本:

/fizz/buzz[@class=("foo", "bar", "whistlefeather")]

(注意,这将返回所选的buzz元素。目前尚不清楚您实际上希望表达式返回什么。)