PHP SimpleXML 跳过第一个元素

PHP SimpleXML Skipping First Element

我有以下 SimpleXML 代码。当我打印输出时,它似乎总是跳过第一个元素。所以在下面的例子中,它跳过品牌元素并直接进入网站。无论我有多少个子关卡,它总是会跳过第一个。

这正常吗?我该如何解决这个问题?

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

$xml = simplexml_load_string($xml);

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

示例输出:

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

        )

)

用另一个元素包裹它:

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

根元素不是 "skipped"。在SimpleXML中,没有单独的"document"对象;相反,当您解析文件或字符串时,您返回的对象代表 根元素 (如果它有效 XML,则始终只有一个)。

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

确认

一般来说,不要太在意 print_r/var_dump/等显示的 SimpleXMLElement 对象 - 大部分数据都存储在表单内部这些函数看不到。