Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 访问对象化XML中的元素_Php_Xml - Fatal编程技术网

Php 访问对象化XML中的元素

Php 访问对象化XML中的元素,php,xml,Php,Xml,我在下面有一个xml字符串,我已经使用它变成了一个对象 $content = mb_convert_encoding($content, "ASCII"); $obj = new SimpleXMLElement($content); obj的结构与xml完全匹配。但是,尝试在没有父“set”节点的情况下获取集合数组会导致问题。 我知道 从这里的内部,如果我执行$currentGroup->set操作,我会看到一个set节点,下面有编号0和1,下面是子测试的结构。 我的问题是,我尝试执行$cu

我在下面有一个xml字符串,我已经使用它变成了一个对象

$content = mb_convert_encoding($content, "ASCII");
$obj = new SimpleXMLElement($content);
obj的结构与xml完全匹配。但是,尝试在没有父“set”节点的情况下获取集合数组会导致问题。 我知道

从这里的内部,如果我执行$currentGroup->set操作,我会看到一个set节点,下面有编号0和1,下面是子测试的结构。 我的问题是,我尝试执行$currentGroup->set->set(尝试在没有父对象的情况下获取集合数组),然后自动获取第一个集合,而没有其他集合。



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

似乎你遗漏了一个关闭的
标记。不确定这是否是问题所在。只是注意到了。而且关闭的标记
没有打开的标记。非常感谢,这就是我一直在寻找的。有没有办法从同一行自动选择第一个节点?遗憾的是,PHP没有关闭如果要从返回数组的函数中取消对数组的引用,则必须首先将值存储在变量中。有关详细信息,请参阅。但是,如果您只需要第一个元素而不是集合,则只需使用
$currentGroup->set->set[0]
foreach($obj->group as $currentGroup)
{
<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>