0

私はグーグルでもここでも役に立つものを見つけることができません。xml ファイルの解析に問題があります。

    $xml = new DOMDocument();
    $xml->load('racunixml.xml');
    $searchNode = $xml->getElementsByTagName( "racun" ); 
    foreach( $searchNode as $searchNode ) 
    {   
       $xmlNaruc=$searchNode->getElementsByTagName('narucitelj');
       $valNaruc = $xmlNaruc->getAttribute('naziv'); 
       $valID = $searchNode->getAttribute('redbr'); 
       $valDate = $searchNode->getAttribute( "date" ); 
        $valPaci = $searchNode->getAttribute( "pacijent"); 
    }

次の行を参照して、このエラーを返します。 $valNaruc = $xmlNaruc->getAttribute('naziv');

致命的なエラー: 未定義のメソッド DOMNodeList::getAttribute() の呼び出し

4

1 に答える 1

2

::getElementsByTagName() を呼び出している場合 (「s」に注意してください - 複数形)、常に DOMNodeList を返します。そして、エラーメッセージで丁寧にほのめかします。マニュアルhttp://www.php.net/manual/en/class.domnodelist.phpを見ると、このクラスには ::getAttribute() メソッドがありません。しかし DOMNode にはあり、ここで行う必要があるのは、foreach で getElementsByTagName() によって返された結果をループすることです。

foreach($searchNode->getElementsByTagName('narucitelj') as $xmlNaruc) {
    $valNaruc = $xmlNaruc->getAttribute('naziv'); 
    .....
}
于 2013-03-24T19:45:40.913 に答える