2009-07-08 73 views

回答

2
<element> 
    <a/> 
    <b/> 
</element> 

element[child::a][child::b] 

这应该选择所有元素与a和b作为直接的孩子,无论他们是否有额外的孩子。或者,更简单地说:

element[a][b] 

......我想。

1

像这样的东西应该这样做: // [A和B]

+0

是否要专门搜索名为'parent'的父节点或是否找到具有'a'和'b'子元素的节点? – 2009-07-08 19:00:52

0
//parent[count(a) > 0 and count(b) > 0] 

应该这样做。有一个伟大的XPath测试平台here,使生活很容易,在亮点方面匹配的节点等

+0

那就必须是parent :: * [count(a)> 0和count(b)> 0],不是吗? – 2009-07-08 18:40:31

1
//*[child::a and child::b] 
1

明显:

parent[a and b] 

孩子轴是谓词隐式的,这意味着没有需要提及它。

parent[child::a and child::b] <!-- the same, only longer --> 

使用两个单独的谓词是可能的,只要条件合取(“和”):

parent[a][b] <!-- the same, slightly shorter --> 

这表达长度节省三个字符。但是,使用两个谓词会触发两个单独的检查,因为它们被一个接一个地应用。使用一个带布尔运算符的谓词似乎是对我来说最简单和最干净的方法。

相关问题