对于使用SimpleXMLElement创建的XML对象转换的数组,我有一个非常奇怪的问题。以2种方式访问相同的项目给了我两个不同的结果。
例如: $ xmlObj [ 'COMMANDE'] [ '法分'] 这给了我一个包含3个项目数组的数组:
array(1) {
["ligne"]=>
array(3) {
[0]=>
array(8) {
["designation"]=>
string(3) "Don"
}
[1]=>
array(8) {
["designation"]=>
string(15) "Cotisation 2013"
}
[2]=>
array(8) {
["designation"]=>
string(15) "Cotisation 2012"
}
}
}
如果我打印计数($ orders ['ligne']),它给我3是正确的。
但是如果我使用$ xmlObj ['commande'] ['lignes'] ['ligne']它会直接给我 数组ligne的第一项,好像我写了$ xmlObj ['commande'] ['lignes'] ['ligne'] [0]
array(8) {
["designation"]=>
string(3) "Don"
}
编辑22h02:我发现'问题',当xml列表中有一个项目SimpleXML get_object_vars或其Zend等效_processXml将其转换为对象时,否则将其转换为数组。
答案 0 :(得分:0)
您使用实现Traversable / Iterator接口的SimpleXMLElement对象。使用get_object_vars()转换为普通数组以使用您编写的。