PHP帮助解析XML

时间:2012-12-26 21:35:30

标签: php xml parsing

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

2 个答案:

答案 0 :(得分:1)

此行返回DOMNodeList

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

此行调用getElementsByTagName()上的方法$item

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

但是,$itemDOMNodeList,没有方法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()方法获取列表中的第一个元素。