2012-01-22 93 views
5

比方說,我有這樣的代碼:只得到一個DOM XPath查詢的第一個結果

$dom = new DOMDocument(); 
@$dom->loadHTMLFile('sample.html'); 
$xp = new DOMXPath($dom); 
$result = $xp->query("//input[@id='honey']"); 

如何只得到第一個結果的屬性value的內容,因爲我只期待一個結果(不使用foreach循環)。我嘗試了var_dump - 結果但它不能。我也試過current($result)->getAttribute('value'),但不是運氣。

回答

6

您可以通過下面的方法訪問它:

$value = $result->item(0)->attributes()->getNamedItem("value")->nodeValue; 
1

只要評價該XPath表達式

(//input[@id='honey'])[1]/@value 

此選擇第一input元素的屬性value在XML文檔中,其id屬性的字符串值爲"honey"

如果你想獲得不value屬性,但它的字符串值,使用

string((//input[@id='honey'])[1]/@value) 
相關問題