confused with xpath


confused with xpath

我在一些html中加载了这段PHP代码。

$dom = new DOMDocument();
$dom->loadHTML($somehtml);
$xpath = new DOMXPath($dom);
$divContent = $xpath->query('//table[class="defURLP"]');
echo $divContent;

我太困惑了,不太明白这里需要做什么,但是我希望它能够填充变量$divContent,使表的html内容具有类名defURLP

它目前刚刚返回

object(DOMNodeList)#3 (0) { }

您需要从xpath查询返回的DOMNodeList中检索第一个项,因为列表中可能有多个项。

// Queries for tables having class defURLP
$tables = $xpath->query('//table[class="defURLP"]');
// Reference the first one in $divContent
$divContent = $tables->item(0);
// Output its nodeValue
echo $divContent->nodeValue;

或者使用foreach:迭代节点列表

$tables = $xpath->query('//table[class="defURLP"]');
// Iterate over the whole node list in $tables (if it is multiple nodes)
foreach ($tables as $t) {
  echo $t->nodeValue;
}