PHP SimpleXML跳过第一个元素

时间:2018-12-05 14:00:07

标签: php simplexml

我有以下SimpleXML代码。当我打印输出时,似乎总是跳过第一个元素。因此,在下面的示例中,它跳过了brand元素,直接进入了网站。不管我有多少个子级别,它总是会跳过第一个级别。

这正常吗?我该如何解决?

$xml = '
<brands>
<websites>
</websites>
</brands>
';

$xml = simplexml_load_string($xml);

echo "<pre>";
print_r($xml);
echo "</pre>";

示例输出:

SimpleXMLElement Object
(
    [websites] => SimpleXMLElement Object
        (
            [0] => 

        )

)

2 个答案:

答案 0 :(得分:1)

只需使用另一个元素将其包装:

<root>
    <brands>
        <websites>
        </websites>
    </brands>
</root>

答案 1 :(得分:0)

根元素未“跳过”。在SimpleXML中,没有单独的“文档”对象。相反,当您解析文件或字符串时,返回的对象表示根元素(如果它是有效的XML,则总是存在一个)。

您可以通过运行echo $xml->getName();

来确认

通常,不要过多关注print_r对象的var_dump / SimpleXMLElement / etc所显示的内容-许多数据在内部以那些功能看不到。