2012-04-15 103 views
1

考慮到您只是在搜索一個特定值,那麼直接獲取唯一的第一個結果而不用使用foreach解析結果? 像這樣:DOMXPath獲取查詢的第一個值

$elements = $dom_xpath->query('//span[@id="loginName"]'); 


echo $elements->firstNode->nodeValue; // this doesn't exist of course 

的HTML代碼

<div> 
    <div id="name">text<span id="loginName">Me</span></div> 
</div> 
+0

要得到一個值,請使用'評估',請參閱https://stackoverflow.com/a/45010743/287948 – 2017-07-10 11:44:44

回答

2

如果肯定會有一場比賽,你可以使用

echo $dom_xpath->query('//span[@id="loginName"]')->item(0)->nodeValue; 
+0

對不起延遲,所以沒有工作:) – 2012-04-15 23:51:41

4

如果您需要檢索在<span>元素內的純文本字符串,即"Me",您可以使用evaluate而不是query

$xp->evaluate('string(//span[@id="loginName"])') 

這可能更符合您的要求。它返回:

string(2) "Me" 

也許這是有幫助的,否則,什麼Jon wrote

+0

這個+1,但我更喜歡其他辦法 – 2012-04-15 23:52:16