我目前正在尝试使用DOMDocument解析文档,并且遇到了一些严重问题。我创建了一个在php 5.2.9上运行良好的脚本,使用DOMNode :: nodeValue来取出内容。同样的脚本在php 5.3.3上没有获得任何内容 - 即使它正确地导航到正确的节点来提取内容。什么会导致DOMNode :: nodeValue为空?
基本上,所用的代码如下所示:
$dom = new DOMDocument();
$dom->loadHTML($data);
$dom->preserveWhiteSpace = false;
$xpath = new DOMXpath($dom);
$nodelist = $xpath->query($query);
$value = $nodelist->item(0)->nodeValue;
我检查,以确保该项目(0)实际上是一个节点 - 它甚至正确类型的存在,但的nodeValue是空。
该脚本适用于某些文档,但不适用于其他文档(关于5.3.3) - 关于5.2.9它适用于所有文档,返回正确的nodeValue。
我发现这样的问题与不同的PHP版本捆绑不同的libxml版本,所以不要丢弃它只是一个错误。但是,重现问题的示例文档可能有助于诊断。 – 2010-11-16 12:03:12