我正在尝试加载一个简单的 HTML 字符串,(无论 HTML 是否整洁)都不允许 DOMDocument 访问。
这是实例化
$doc = new DOMDocument(/*'1.0', 'utf-8'*/);
$doc->recover = true;
$doc->strictErrorChecking = false;
$doc->formatOutput = true;
$doc->load($content);
$node_array = $doc->getElementsByTagName("body");
print_r( $node_array)
...或者$node_array->items(0);
我得到:
DOMNodeList Object
(
)
DOMDocument 使用函数 save 很好地返回字符串它不是资源。会不会缺少依赖项、额外的 PHP 配置……?
更新: DOMDocument 的对象根本没有实现任何 tostring 转换函数:
print_r( (string)$node_array );
类 DOMNodeList 的对象无法在...中转换为字符串
HTML 代码在这里: http: //pastebin.com/11V92Dup(故意格式错误 - 这是为了在代码中演示“整洁”正确关闭标签)
我想简单地遍历节点并输出它们的内容:
$node_array = $doc->getElementsByTagName("html");//parent_node();
$x = $doc->documentElement;
foreach ($x->childNodes AS $item)
{
print $item->nodeName . " = " . $item->nodeValue . "<br />";
}
更新2:我得到了这个结果!这是没有意义的。(所有空格从何而来?)
body =
COMPOUND: C05441