如果我想选择/ a / b1 / c和/ a / b2 / c,我可以使用以下方法之一:
/a/*[local-name()='b1' or local-name()='b2']/c
/a/b1/c | /a/b2/c
但是我想知道是否有一种更优雅的方式来指定“b1或b2”而不必重新键入几乎整个表达式而不必使用local-name函数。
不幸的是,这些表达式不起作用:
/a/b1 or b2/c
/a/[b1 or b2]/c
/a/b1 | b2/c
/a/[b1 | b2]/c
答案 0 :(得分:3)
两个比原来短一点的XPath 1.0解决方案,并且不依赖于local-name()将是:
/a/*[self::b1 or self::b2]/c
/a/*[self::b1 | self::b2]/c
答案 1 :(得分:2)
在XPath 2中,您可以使用:
/a/(b1|b2)/c
以及
/a/(b1,b2)/c