从xpath数组中提取值

时间:2014-11-18 19:17:17

标签: php xpath

我有以下内容打印100 - 这是正确的 - 但是,我必须使用print_r()这显然是错误的

$dom = new DOMDocument();
$dom->loadHTML('<span class="foo" id="bar" itemprop="price">100</span>');

$xpath = new DOMXPath($dom);

$results = $xpath->evaluate('number(//*[@itemprop="price"])');

print_r($results);`

那么,我应该如何获得100的单个结果呢?我已经尝试了$results[0]但没有工作。

我确定这很简单但是打我!

1 个答案:

答案 0 :(得分:1)

在结果上使用->item()方法来访问XPath查询返回的DOM节点。另外,当您想要运行XPath查询时,您应该使用query()方法。我从来没有真正理解使用evaluate()的目的。

$xpath = new DOMXPath($dom);

$results = $xpath->query('//*[@itemprop="price"]');

echo $results->item(0)->nodeValue;

DOMXPath->query() 会返回DOMNodeList的实例,您可以使用foreach()进行迭代,或使用->item()方法访问特定的结果项。它唯一的参数是返回列表中从0开始的索引。