2010-03-12 194 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

相關問題