以客观化的XML访问元素

时间:2012-03-28 23:15:55

标签: php xml

我在下面有一个xml字符串,我已经使用

变成了一个对象
$content = mb_convert_encoding($content, "ASCII");
$obj = new SimpleXMLElement($content);

obj的结构与xml完全匹配。但是,尝试获取没有父“set”节点的集合数组会导致问题。 我做了

foreach($obj->group as $currentGroup)
{

如果我执行 $ currentGroup->设置 ,我会在内部看到 set 节点,其下面有编号,0和1 ,并在其下的子测试的结构。 我的问题是我尝试做$ currentGroup-> sets-> set(尝试获取没有父节点的集合数组,然后我自动获得第一个集合,而不是其他集合。 enter image description here

<global>
    <group name="bce">
        <sets>
            <set name="a">
                <subsets>
                    <subset name="bla"/>
                    <subset name="bla2"/>
                    <subset name="bla3"/>
                </subsets>
            </set>
            <set name="b" />
                <subsets>
                    <subset name="bla"/>
                    <subset name="bla2"/>
                    <subset name="bla3"/>
                </subsets>
            </set>
            <set name="c" />
                <subsets>
                    <subset name="bla"/>
                    <subset name="bla2"/>
                    <subset name="bla3"/>
                </subsets>
            </set>
            <set name="d" />
                <subsets>
                    <subset name="bla"/>
                    <subset name="bla2"/>
                    <subset name="bla3"/>
                </subsets>
            </set>
        </subgroupones>
    </group>
    <group name="ert">
        <sets>
            <set name="aa">
                <subsets>
                    <subset name="bla"/>
                    <subset name="bla2"/>
                    <subset name="bla3"/>
                </subsets>
            </set>
            <set name="bb" />
                <subsets>
                    <subset name="bla"/>
                    <subset name="bla2"/>
                    <subset name="bla3"/>
                </subsets>
            </set>
        </subgroupones>
    </group>
</global>

1 个答案:

答案 0 :(得分:1)

所以你想要一个 set 节点的数组?应该是$currentGroup->sets->children(),除非我遗漏了什么。