-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は DOM 要素ではなく DOMNodeList です。これを使用して、リストの最初の要素にアクセスします。

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

これは、item()メソッドを使用してリストの最初の要素を取得します。

于 2012-12-26T21:38:54.620 に答える