Php domDocument未返回节点信息
我正在尝试获取外部页面的DOM元素。根据我正在尝试的其他帖子:Php domDocument未返回节点信息,php,dom,domdocument,Php,Dom,Domdocument,我正在尝试获取外部页面的DOM元素。根据我正在尝试的其他帖子: $html = htmlentities(file_get_contents('http://www.slate.com')); $dom = new domDocument; $dom->loadHTML($html); echo "<pre>"; var_dump($dom); echo "</pre>"; $html=htmlentities(文件获取内容('http://www.sla
$html = htmlentities(file_get_contents('http://www.slate.com'));
$dom = new domDocument;
$dom->loadHTML($html);
echo "<pre>";
var_dump($dom);
echo "</pre>";
$html=htmlentities(文件获取内容('http://www.slate.com'));
$dom=新的domDocument;
$dom->loadHTML($html);
回声“;
var_dump($dom);
回声“;
(Html实体消除警告,但在其他方面与忽略警告的结果相同)
根据我读到的内容,这应该返回父/子节点中的各种DOM部分。但是上面代码的结果不包含DOM节点,只包含一个包含整个HTML页面的巨大“textContent”元素
谢谢你对我做错的想法。
你应该考虑使用PHPQuQuy()。< /P> < P>你正在寻找
DOMNode
这将返回一个
function dump(DOMNode $node)
{
echo $node->nodeName;
if ($node->hasChildNodes())
{
echo '<div style="margin-left:20px; border-left:1px solid black; padding-left: 5px;">';
foreach ($node->childNodes as $childNode)
{
dump($childNode);
}
echo '</div>';
}
}
dump($dom->documentElement);
反对
另外:去掉
htmlentities
,因为这会弄乱您获取的HTML代码。e、 g.:如果您想显示警告,请使用libxml\u使用内部错误(true)
。你不能在htmlentities
之后加载DomDocument因为我们不知道@daprezjer在干什么,所以看起来就像在麻雀身上开大炮……让我找到了需要去的地方。谢谢
function dump(DOMNode $node)
{
echo $node->nodeName;
if ($node->hasChildNodes())
{
echo '<div style="margin-left:20px; border-left:1px solid black; padding-left: 5px;">';
foreach ($node->childNodes as $childNode)
{
dump($childNode);
}
echo '</div>';
}
}
dump($dom->documentElement);