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
对象 - 大部分数据都存储在表单内部这些函数看不到。
我有以下 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
对象 - 大部分数据都存储在表单内部这些函数看不到。