次の構造を持つ XML を解析しようとしています (2 つの形式が示されていますが、どちらも有効です)。
<xml-structure>
<parent-group>
<child>
<element1>Some Data</element1>
<element2>Some Data</element2>
</child>
</parent-group>
</xml-structure>
<xml-structure>
<parent-group>
<child>
<element1>Some Data</element1>
<element2>Some Data</element2>
</child>
<child>
<element1>Some Data</element1>
<element2>Some Data</element2>
</child>
</parent-group>
</xml-structure>
以下は、この構造全体を連想配列に取得し、データを調べるために使用されます。
$arr = json_decode(json_encode((array) simplexml_load_string($xml)),1);
$children = $arr['parent-group']['child'];
子を繰り返し処理してデータを確認したいのですが、次の方法は子が複数ある場合にのみ機能します。
foreach($children as $child) {
echo $child['element1'];
}
子が 1 つしかない場合、次のことが成り立つため、これは機能しません。
$children === {'element1' => 'Some Data', 'element2' => 'Some Data'}
複数の子があるかどうかを事前に知らなくても、$children
常に配列 (おそらくサイズ 1) になるようにするにはどうすればよいですか?