SimpleXML を使用して XML ファイルを配列に読み込もうとしていますが、スクリプトが空のノード (<NodeName /> など) に遭遇すると、XML が「無効」であるというエラーがスローされ、終了します。
問題の XML は完全に有効です。全体を検索/置換し、空のノードを削除しますが、これを効率的に行うには大きすぎます。
以下は、私が使用しているコードの複製です。空の要素に遭遇したときに、これを無視するようにリファクタリングするか、単に null 値を配列に返すことができますか?
$iter = 0;
$xmlIterator = new SimpleXMLIterator($url, 0, true);
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
$rows[$iter] = array();
foreach($xmlIterator->getChildren() as $column => $data) {
$rows[$iter][$column] = $data;
$data = null;
}
$iter++;
}