$_POST 変数から XML を読み取り、PHP XMLReader を使用して解析し、抽出されたデータをデータベースに入力するプログラムを作成しています。提供される XML は大きすぎてメモリに配置できない可能性が高いため、XMLReader を使用しています。
ただし、いくつかの問題があります。XML と基本的なコードは次のとおりです。
'<?xml version="1.0"?>
<data_root>
<data>
<info>value</info>
</data>
<action>value</action>
</data_root>'
$request = $_REQUEST['xml'];
$reader = new XMLReader();
$reader->XML($request);
while($reader->read()){
//processing code
}
$reader->close()
私の問題は、渡される XML に行がない場合、コードが完全に機能することですが<?xml version="1.0"?>
、それを含めると、アプリケーションが実際の運用環境に入ったときに含まれ$reader->read()
、while ループのコードが機能しません。 XML は while ループ内で解析されません。
以前に同様の動作を見たことがありますか、またはなぜこれが起こっているのか知っていますか?
前もって感謝します。