我需要打印我的SimpleXMLElement对象。
为什么“ level1”元素分开显示? XML对象看起来不错。
应该是:
<items>
<item>
<id>1</id>
<level1>
<sub1>subas1 id</sub1>
<sub2>subas2 id</sub2>
</level1>
<name>car</name>
<cat>cat1</cat>
</item>
</items>
但是最终结果是:
<items>
<item>
<id>1</id>
<level1>
<sub1>subas1 id</sub1>
</level1>
<name>car</name>
<cat>cat1</cat>
<level1>
<sub2>subas2 id</sub2>
</level1>
</item>
</items>
对象:
SimpleXMLElement Object
(
[item] => SimpleXMLElement Object
(
[id] => 1
[level1] => Array
(
[0] => SimpleXMLElement Object
(
[sub1] => subas1 id
)
[1] => SimpleXMLElement Object
(
[sub2] => subas2 id
)
)
[name] => car
[cat] => cat1
)
)
print_r()
转储应如下所示:SimpleXMLElement Object
(
[item] => SimpleXMLElement Object
(
[id] => 1
[level1] => SimpleXMLElement Object
(
[sub1] => subas1 id
[sub2] => subas2 id
)
[name] => car
[cat] => cat1
)
)
([Test code)因此您在创建文档时一定犯了一个错误。您最有可能添加了多余的方括号。请比较:
$xml = new SimpleXMLElement('<items />'); $xml->item->id = 1; $xml->item->level1->sub1 = 'subas1 id'; $xml->item->level1->sub2 = 'subas2 id'; $xml->item->naem = 'car'; $xml->item->cat = 'cat1';
...和:
$xml = new SimpleXMLElement('<items />'); $xml->item->id = 1; $xml->item->level1[]->sub1 = 'subas1 id'; $xml->item->level1[]->sub2 = 'subas2 id'; $xml->item->naem = 'car'; $xml->item->cat = 'cat1';