PHP SimpleXML跳过第一个元素
我有以下SimpleXML代码。当我打印输出时,它似乎总是跳过第一个元素。因此,在下面的例子中,它跳过品牌元素,直接进入网站。不管我有多少子级别,它总是跳过第一个 这正常吗?我怎样才能解决这个问题PHP SimpleXML跳过第一个元素,php,simplexml,Php,Simplexml,我有以下SimpleXML代码。当我打印输出时,它似乎总是跳过第一个元素。因此,在下面的例子中,它跳过品牌元素,直接进入网站。不管我有多少子级别,它总是跳过第一个 这正常吗?我怎样才能解决这个问题 $xml = ' <brands> <websites> </websites> </brands> '; $xml = simplexml_load_string($xml); echo "<pre>"; print_r($xml);
$xml = '
<brands>
<websites>
</websites>
</brands>
';
$xml = simplexml_load_string($xml);
echo "<pre>";
print_r($xml);
echo "</pre>";
只需使用另一个元素将其包装:
未跳过根元素。在SimpleXML中,没有单独的文档对象;相反,当解析文件或字符串时,返回的对象表示根元素,如果它是有效的XML,则始终只有一个根元素 您可以通过运行echo$xml->getName来确认这一点
一般来说,不要太在意print\r/var\u dump/etc为SimpleXMLElement对象显示了什么—许多数据以这些函数看不到的形式存储在内部。这不是因为xmlobject==根元素,换句话说,如果执行$xml->getName,则应该是brandsshow输出please@raksaeng我已更新以显示output@DarkMukke加上这个作为答案!我会避免在任何生产代码中使用标签-我相信这是规范正式保留的。@IMSoP感谢您的关注。不幸的是,我不知道这件事。名称以字符串xml开头的规范,或与“X”|“X”“M”|“M”“L”|“L”匹配的任何字符串,在本规范或本规范的未来版本中保留用于标准化。事实上,我刚刚重新阅读了这个问题,虽然这可行,但完全没有必要。@IMSoP我认为如果可行,这并不意味着它是正确的。此外,我们不知道它将如何使用,也许XML将被发送到严格遵循规范的客户机。因此,我非常感谢你的评论。
SimpleXMLElement Object
(
[websites] => SimpleXMLElement Object
(
[0] =>
)
)
<root>
<brands>
<websites>
</websites>
</brands>
</root>