我需要获取并处理网页。我在这里为你做了一个演示:
http://vaso.hu/other/dom/shop.htm
我想解析它,并从child
div获取所有parent
类别(链接和文本)与Dom。
<?php
$Dom = new \DOMDocument();
$Dom->recover = true;
$Dom->strictErrorChecking = false;
$Dom->resolveExternals = true;
$Dom->substituteEntities = true;
$Dom->validateOnParse = false;
$Dom->loadHTMLFile('http://vaso.hu/other/dom/shop.htm');
首先,我不明白的是这个错误代码:
警告:DOMDocument :: loadHTMLFile():意外的结束标记:http://vaso.hu/other/dom/shop.htm中的li,行:17
是的,我知道,有一个不需要的关闭</li>
,但这不是我的HTML代码。我一直在搜索,正如我所看到的,这就是$Dom->recover
的原因。
第二个问题是
警告:DOMDocument :: loadHTMLFile():htmlParseEntityRef:http://vaso.hu/other/dom/shop.htm中没有名字,第21行
搜索它,我知道,问题是&
标志,我只是不知道如何处理。
所以你能告诉我,修复是为什么不修复代码,我该如何处理&
标志?
无论如何,这里是坏代码,这是怎么回事,故意不缩进,并选择了头部。
<body>
<div class="menu"><ul></li>
<li><p><a class="hide" href="abc" style="width:100px;" title="">xxxx</a></p>
</li>
</ul>
</div>
<div class="parent">
<div class="child"><h3><a href="/product/cables_adapters" title="">Cabels & Adapters</a></h3></div>
<!--
more childs here
-->
</div>
</body>
修改
第二个问题是通过将&
符号替换为&
来解决的,我只是想知道,这是真正的解决方案吗?