2012-01-28 69 views
4

實施例:輸出屬性值使用XPath 1.0

<div class='known' name='unknown'> 

我怎樣才能返回基於已知class attribure值,使用XPath 1.0 name屬性值( '未知')?

在尋找一個答案,我發現了XPath 2.0有此儀器:

//div[@class='known']/@name/string() 

,但無法找到的XPath 1.0類比

回答

5

使用

string(//div[@class='known']/@name) 

這生成d中第一個的name屬性的字符串值ocument order div元素使得其class屬性的字符串值爲"unknown"

如果//div[@class='known']選擇多於一個div元件,並且希望name屬性爲第k個選擇div,使用的值:

string((//div[@class='known'])[$k]/@name) 

其中$k具有與想要的整數被取代,或否則變量$k必須位於XPath表達式的評估上下文中。

+0

謝謝。有沒有辦法輸出所有元素?我嘗試了'string((// div [@ class ='known'])[*]/@ name)',但它不起作用 – theta 2012-01-29 02:28:21

+1

@zetah:沒有使用單個XPath 1.0表達式。但是,可以使用單個XPath 1.0表達式來選擇所有元素或其所有'name'屬性。然後,輸出可以在主機編程語言的循環中完成。 – 2012-01-29 02:34:57