如何组合这些xpath表达式?

时间:2012-05-01 18:51:38

标签: xpath

我有两个Xpath表达式......

//*[@id='gutter']/p[strong[text()='Date:']]/text()
//*[@id='gutter']/p[strong[text()='Time:']]/text()

如何编写一个结合上述两个的xpath表达式,并返回与单独运行上述每个表达式相同的元素?

2 个答案:

答案 0 :(得分:17)

通常这个Xpath表达式:

expr1 | expr2

选择 expr1 选择的所有节点的 union 以及 expr2 选择的所有节点。

|字符表示XPath union 运算符。

如果希望返回由多个XPath表达式选择的节点的并集,则可以在任何情况下使用union运算符。

在这个具体案例中

 //*[@id='gutter']/p[strong[text()='Date:']]/text()
|
 //*[@id='gutter']/p[strong[text()='Time:']]/text()

虽然可以优化这个表达式,但它的优点是联合运算符在所有这些情况下都“有效”,几乎可以用机械方式表达,节省时间并消除了通过更复杂的重构引入错误的可能性。

答案 1 :(得分:5)

怎么样:

//*[@id='gutter']/p[strong[text()='Date:' or text()='Time:']]/text()

或多或少不言自明。