2010-03-12 195 views
1

如何查找至少具有一个属性的元素?XPath查找具有属性的元素

例子:

<tr>...</tr> 
<tr style="">...</tr> 
<tr width="">...</tr> 

我希望所有的TR元素,但...

我试过以下的XPath,但它不工作。

//table//tr[contains(attributes::*,'')] 

感谢

+0

XPather可能会提供帮助:http://xpath.alephzarro.com/ – ANeves 2010-03-12 19:09:37

回答

3

这应做到:

//table/tr[@*] 

之所以你不工作,是因为将始终返回true时,第二个参数是''。当表达式返回方括号内的节点集时,如果它是非空的则认为是真,如果是空则认为是假。所以[@*]将返回所有属性的集合,并且如果存在任何属性将被解释为真。

+0

不,它会返回所有行。我相信所有的字符串都会包含''。这就是它返回所有tr节点的原因。 – priyank 2010-03-12 19:04:32

+0

@priyank:我刚刚在Visual Studio的XSLT解释器中进行了测试,我的示例按预期工作。 – Welbog 2010-03-12 19:12:05

+0

@priyank:肯定不一样。使用XPather并使用'// div'和'// div [@ *]'检查此页面 - 它们产生不同数量的项目。 – ANeves 2010-03-12 19:13:36

相关问题