0

PHPでDOMDocumentに変換したAPIからxmlファイルを解析しています。これはほとんど問題ありませんが、私が抱えている問題の1つは、これを行うときです。

$feeditem->getElementsByTagName('extra');

forallステートメントの一部であり、要素extraがforall条件で繰り返し処理しているフィード項目のいずれにも存在しないため、エラーが発生します。

私はこれを試しました:

if (!empty($feeditem->getElementsByTagName('extra'))){
$extratag = $feeditem->getElementsByTagName('extra');
    $extraname = $extratag->item(0)->getAttribute('name');
echo $extraname
    }

しかし、私はエラーを受け取ります

getAttribute() on a non-object

注:「extra」要素がすべてのフィードアイテムに含まれている場合、コードは完全に実行されます。フィードアイテムの1つに「extra」要素が含まれていない場合にエラーが発生します。

4

1 に答える 1

2

lengthのプロパティを使用してみてくださいDOMNodeList

$nodes = $feeditem->getElementsByTagName('extra');
if ($nodes->length > 0) {
    $extraname = $extratag->item(0)->getAttribute('name');
}
于 2009-10-17T19:51:26.693 に答える