【发布时间】:2014-10-14 13:10:19
【问题描述】:
这是我目前的代码:
$htmlString = file_get_contents("http://developer.adition/rAD41126");
$domDocument = new DOMDocument();
$domDocument->loadHTML($htmlString);
$xpath = new DOMXPATH($domDocument);
$className = "phui-property-list-properties ";
$results = $xpath->query("//dl[@class='$className']/dd[last()]" );
var_dump($results);`
输出是一个空的DOMNodeList 元素。它应该给我html 部分的最后一个dd 元素,如下所示。类名 "phui-property-list-properties " 在 DOM 中出现时有意增加了一个空格。
具有相关元素的DOM部分是
<dl class="phui-property-list-properties ">
<dt class="phui-property-list-key">Project/Package Auditors </dt>
<dd class="phui-property-list-value">
<dt class="phui-property-list-key">Committed </dt>
<dd class="phui-property-list-value">
<dt class="phui-property-list-key">Parents </dt>
<dd class="phui-property-list-value">
<dt class="phui-property-list-key">Branches </dt>
<dd class="phui-property-list-value">
<dt class="phui-property-list-key">Tags </dt>
<dd class="phui-property-list-value">
<dt class="phui-property-list-key">Subscribers </dt>
<dd class="phui-property-list-value">
<em>None</em>
</dd>
</dl>
我想得到最后一个带有class="phui-property-list-value"属性的dd元素
EDIT
即使是查询,我也得到一个空对象
$className = "phui-property-list-properties ";
$results = $xpath->query("//dl[@class='$className']");
var_dump($results);
【问题讨论】:
-
我认为查询没有问题,应该根据您提供的标记获取该节点
-
您的原始和编辑部分在
$className变量值的末尾包含一个额外的空格。尝试删除它。希望它会奏效。 -
@arvinchhi DOM 元素中存在额外的空间并且是有意的。我删除了它,但它仍然不起作用。
标签: php html xpath html-parsing