0

我正在尝试解析一些具有以下结构的 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)?

4

1 回答 1

0

我最终做了以下事情 - 如果有人有更好的解决方案,我会很感兴趣:

$children = $arr['parent-group']['child'];
if (!empty($children['element1'])) {
    $children = array($children);
}

完成此操作后,$children将始终是一组子项,允许以下行正确执行。

于 2012-06-26T15:59:13.833 回答