0

異なるサーバーのデータベースから xml データを読み取る必要がある次のコードがあります。

foreach($servers->result() as $server){
    $srvr = $server->ip;
    $loading_server = "http://".$srvr."/status.xml";
    $doc = new DOMDocument();
    $status = $doc->load($loading_server);
    $power_out = $status->getElementsByTagName( "input0" );
    $temperature = $status->getElementsByTagName( "input1" );
    $rf_antenna_power = $status->getElementsByTagName( "input2" );
    echo "<b>$srvr: $power_out - $temperature - $rf_antenna_power \n</b><br>";
}

status.xml各サーバーには、次のようなファイルにステータス レポートがあります。

<response>
<input0>1</input0>
<input1>0</input1>
<input2>0</input2>
<input3>0</input3>
<input4>0</input4>
...
..
<response>

しかし、次のエラーが表示されます。

Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\xampp\htdocs\transmitter\application\views\body.php on line 10

を使用して xml コンテンツにアクセスすることを考え$dom->loadHTML(file_get_contents($wrss));ましたが、それでも警告が表示されません。

DOMDocument::loadHTML(): Tag response invalid in Entity

これで私を助けてください!

4

1 に答える 1

1

DomDocument::load 非静的呼び出しで bool のみを返す: http://php.net/manual/en/domdocument.load.php

例への正しい使用:

if ($status){
    $doc->getElementsByTagName( "input0" );
}
于 2013-06-11T11:03:57.830 に答える