我正在尝试解析XML并打印一个标签,但我收到错误说。
致命错误:调用未定义的方法DOMNodeList :: getElementsByTagName()
<?
$doc = new DOMDocument();
$doc->load('http://www.espncricinfo.com/rss/content/story/feeds/0.xml');
$item = $doc -> getElementsByTagName('item');
$title = $item->getElementsByTagName('title');
$titles = $title->item(0)->nodeValue;
echo "<h2>$titles</h2>"
?>
答案 0 :(得分:1)
此行返回DOMNodeList
:
$item = $doc -> getElementsByTagName('item');
此行调用getElementsByTagName()
上的方法$item
:
$title = $item->getElementsByTagName('title');
但是,$item
,DOMNodeList
,没有方法getElementsByTagName
,因此错误:
Fatal error: Call to undefined method DOMNodeList::getElementsByTagName()
要使用rss feed我建议你只使用SimpleXML:
function h($s) {
return htmlspecialchars($s, ENT_QUOTES, 'utf-8');
}
$u = 'http://www.espncricinfo.com/rss/content/story/feeds/0.xml';
$rss = simplexml_load_file($u);
foreach ($rss->channel->item as $item) {
echo "<h2>",h($item->title),"</h2>\n";
}
答案 1 :(得分:0)
$item
是DOMNodeList,而不是DOM元素,使用它来访问列表中的第一个元素:
$title = $item->item(0)->getElementsByTagName('title');
这使用item()
方法获取列表中的第一个元素。