我正在尝试解析一些具有以下结构的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'];
}
如果只有一个孩子,那么这是行不通的,因为以下情况是正确的:
$children === {'element1' => 'Some Data', 'element2' => 'Some Data'}
在事先不知道是否有多个子级的情况下,我如何确保$children
始终是一个数组(大小为 1)?
我最终做了以下事情 - 如果有人有更好的解决方案,我会很感兴趣:
$children = $arr['parent-group']['child'];
if (!empty($children['element1'])) {
$children = array($children);
}
完成此操作后,$children
将始终是一个子数组,允许以下行正确执行。