首页 > 解决方案 > foreach 循环中的 SimpleXMLElement 一直嵌套在 PHP 中

问题描述

我使用 SimpleXMLElement 如下:

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><xml></xml>');
$xml->addChild('tests');

然后我尝试在上面添加单独的测试,如下所示:

foreach($tests as $test){

    $node1 = $xml->tests->addChild('test');
    $node1->addAttribute('name', $test[0]);
    $node1->addAttribute('example', $test[1]);

    $subnode1 = $node1->addChild('header');
    $subnode1->addAttribute('example', 'example');
}

echo $xml->asXML();

我希望完成的输出如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xml>
    <tests>
        <test name="test name" example="example">
            <header example="example"></header>
        </test>
        <test name="test name" example="example">
            <header example="example"></header>
        </test>
    </tests>
</xml>

但相反,我得到了更像这样的东西:

<?xml version="1.0" encoding="UTF-8"?>
<xml>
    <tests>
        <test name="test name" example="example">
            <header example="example">
                <test name="test name" example="example">
                    <header example="example">
                        <test name="test name" example="example">
                            <header example="example"></header>
                        </test>
                    </header>
                </test>
            </header>
        </test>
    </tests>
</xml>

请对我做错了什么有任何建议吗?

标签: phpxml

解决方案


推荐阅读