DOMElement空nodeValue

时间:2013-03-29 17:56:01

标签: php html parsing domdocument

我有一个项目需要解析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而不是。

1 个答案:

答案 0 :(得分:0)

如果您解析XML,请使用$dom->loadXML($response)代替$dom->loadHtml($response)