【发布时间】:2011-05-10 18:37:40
【问题描述】:
我目前正在尝试使用 DOMDocument 解析文档,但遇到了一些严重的问题。我创建了一个在 php 5.2.9 上运行良好的脚本,使用 DOMNode::nodeValue 删除内容。相同的脚本无法在 php 5.3.3 上获取任何内容 - 即使它正确导航到正确的节点以提取内容。
基本上,使用的代码如下所示:
$dom = new DOMDocument();
$dom->loadHTML($data);
$dom->preserveWhiteSpace = false;
$xpath = new DOMXpath($dom);
$nodelist = $xpath->query($query);
$value = $nodelist->item(0)->nodeValue;
我已经检查以确保 item(0) 实际上是一个节点 - 它在那里,甚至是正确的类型,但 nodeValue 是空的。
脚本适用于某些文档,但不适用于其他文档(在 5.3.3 上) - 在 5.2.9 上,它适用于所有文档,返回正确的 nodeValue。
【问题讨论】:
-
我发现这样的问题与捆绑不同 libxml 版本的不同 PHP 版本一起使用,所以不要丢弃它只是一个错误。但是,重现问题的示例文档可能有助于诊断。
标签: php dom domdocument