【发布时间】:2013-06-25 12:19:04
【问题描述】:
我正在尝试将字符串“hinson lou ann”取出:
<div class='owner-name'>hinson lou ann</div>
当我运行以下命令时:
$html = "http://gisapps.co.union.nc.us/ws/rest/v2/cm_iw.ashx?gid=12339";
$doc = new DOMDocument();
$doc->loadHTMLFile($html);
$xpath = new DOMXpath($doc);
$elements = $xpath->query("*/div[@class='owner-name']");
if (!is_null($elements)) {
foreach ($elements as $element) {
echo "<br/>[" . $element->nodeName . "]";
$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo $node->nodeValue . "\n";
}
}
}
我收到以下错误:
警告:DOMDocument::loadHTMLFile() [domdocument.loadhtmlfile]: htmlParseEntityRef:http://gisapps.co.union.nc.us/ws/rest/v2/cm_iw.ashx?gid=12339 中没有名称,行:/home 中的 1...在线...
指的是loadHTMLFILE这一行。
注意:该文件不是有效的 HTML,它只包含 div 标记!什么是我加载文件然后在上面打了HTMLbody标签?
【问题讨论】:
-
首先,那个输出不是有效的html。
-
尝试
$html = file_get_contents('http://gisapps.co.union.nc.us/ws/rest/v2/cm_iw.ashx?gid=12339');然后$doc->loadHTMLFile($html);...这就是我至少抓取网页的方式 -
是的,但@RobW 是对的,它不是有效的 html....只有 div 标签!任何想法
-
这就是你的问题:
HINSON J MARK & WF LOU ANN G...&amp;启动一个实体,一个裸露的&amp;应该是&amp;。嗯,$doc->recover=true;和所有都是 'wellish'(前提是您使用//div[@class='owner-name']而不是*/div[@class='owner-name'],因为它神奇地创建了元素以使其成为真正的 HTML)。 -
下次也请教一个问题。你还没有问你关心什么。因此,用户只能猜测您提出的哪个问题导致了您。仅凭错误信息很难说。