2012-05-01 57 views
7

我有两个Xpath的表情......如何组合这些xpath表达式?

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

如何编写,结合了以上两个和将返回相同的元素,运行的每个表达式的各自如上一个XPath表达式?

+0

你的意思是“返回相同的文本节点”? –

回答

4

如何:

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

这或多或少是不言自明的。

14

一般这种XPath表达式:

expr1 | expr2 

选择联盟和expr2的选择由expr1的选择的所有节点的所有节点的

|字符表示XPath 联合运算符。

当您想要返回由几个XPath表达式选择的节点的联合时,您可以在任何情况下使用联合运算符。

在这个具体的例子

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

虽然这种表达可以优化,它的优点是联合运营“作品”在所有这些情况下,几乎可以机械地表示,节省了时间和消除了通过更复杂的重构引入错误的可能性。