2012-04-15 72 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