我有两个Xpath表达式......
//*[@id='gutter']/p[strong[text()='Date:']]/text()
//*[@id='gutter']/p[strong[text()='Time:']]/text()
如何编写一个结合上述两个的xpath表达式,并返回与单独运行上述每个表达式相同的元素?
答案 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()
或多或少不言自明。