-2

我正在尝试解析 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>"
        ?>
4

2 回答 2

1

此行返回一个DOMNodeList

$item = $doc -> getElementsByTagName('item');

getElementsByTagName()此行调用方法$item

$title = $item->getElementsByTagName('title');

但是,$itemaDOMNodeList没有方法getElementsByTagName,因此出现错误:

Fatal error: Call to undefined method DOMNodeList::getElementsByTagName()

要使用 rss 提要,我建议您只使用 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";
}
于 2012-12-26T21:40:07.333 回答
0

$item是一个 DOMNodeList,而不是 DOM 元素,使用它来访问列表中的第一个元素:

        $title = $item->item(0)->getElementsByTagName('title');

这使用item()方法来获取列表中的第一个元素。

于 2012-12-26T21:38:54.620 回答