我有一个项目,需要解析xml页面并挑选出一些数据。domDocument类看起来很完美,我尝试了几个基本测试,看看它是否能实现我想要的效果。
下面是我目前的代码:
$dom = new domDocument;
$html = file_get_contents('http://wadmag.com/feed.xml');
$previous_value = libxml_use_internal_errors(TRUE);
$dom->loadHTML("$html");
libxml_clear_errors(); //This here is to clear the errors caused by the page not
libxml_use_internal_errors($previous_value); // being proper html
$links = $dom->getElementsByTagName('item');
echo "Found : ".$links->length. " items";
foreach ($links as $link) {
echo $link->nodeValue."<br>";
}现在的问题是,当我加载页面时,我得到消息"Found: 21 items",这意味着getElementsByTagName返回了一个列表,但是当我尝试显示列表的内容时,什么也没有显示,就好像nodeValue是空的一样。
更奇怪的是,如果我将getElementsByTagName中的"link“替换为标题或描述,它会按原样显示所有内容。我似乎不明白为什么,我能看到的唯一区别是,和可能是正确的html,而不是。
发布于 2016-10-25 09:40:28
如果解析XML,请使用$dom->loadXML($response)而不是$dom->loadHtml($response)
https://stackoverflow.com/questions/15708718
复制相似问题