我有以下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] =>
)
)
答案 0 :(得分:1)
只需使用另一个元素将其包装:
<root>
<brands>
<websites>
</websites>
</brands>
</root>
答案 1 :(得分:0)
根元素未“跳过”。在SimpleXML中,没有单独的“文档”对象。相反,当您解析文件或字符串时,返回的对象表示根元素(如果它是有效的XML,则总是存在一个)。
您可以通过运行echo $xml->getName();
通常,不要过多关注print_r
对象的var_dump
/ SimpleXMLElement
/ etc所显示的内容-许多数据在内部以那些功能看不到。