2011-05-11 94 views
0

如何返回页面上的多个节点?这里是我正在使用的代码,但它只返回找到的第一个节点。用xpath返回多个节点

$dom = new DOMDocument; 
$dom->loadHTMLFile($URL); 

$xpath = new DOMXpath($dom); 
$users= $xpath->query('//b[@class="xc_user"]'); 

echo $users->item(0)->nodeValue; 
+1

使用'foreach'迭代返回['DOMNodeList'](http://de.php.net/manual/ en/class.domnodelist.php)或[任何其他循环控制结构。](http://de.php.net/manual/en/language.control-structures.php) – Gordon 2011-05-11 21:45:46

+0

@Gordon我试过这个'foreach($ users-> item-> nodeValue as $ result){echo $ result; “没有运气,这是在正确的方向吗? – sarsar 2011-05-11 21:53:58

+0

只是'foreach($ user as $ node)'。这将为'$ node'返回一个'DOMElement'。看到我的答案http://stackoverflow.com/questions/5249492/xpath-not-behaving-for-me-in-parsing-basic-html/5249675#5249675 – Gordon 2011-05-11 21:55:00

回答

1

$users是的DOMNodeList,您可以遍历:

foreach($users as $node) { 
    echo $node->nodeValue; 
}