0

我正在使用此函数 http://mysrc.blogspot.it/2007/02/php-xml-to-array-and-backwards.html 将 XML 解析为数组。非常棒的功能。但奇怪的是,如果我有以下 2 个 xml 文件:

<response>
<company prop1=1>
</company>
<company prop1=2>
</company>
</response>

<response>
<company prop1=1>
</company>
</response>

我得到了不同的结果。对于第一种情况,我得到了一个包含两个元素的数组:

Array(
  int(0) => _a => Array(...)
  int(1) => _a => Array(...)
)

但对于第二种情况,我得到了

  Array (
    _a => Array(...)
  )

这不是第一种情况下索引的数组。这使解析变得复杂。有人知道如何修改代码吗?问候。

4

2 回答 2

1

假设你做了类似的事情

$result = xml2ary($xml);

在调用 xml2ary() 之后尝试添加这一行:

$result = is_int(reset(array_keys($result))) ? $result : array($result);

这将检查结果数组的第一个键是否为整数(这意味着该xml2ary函数返回了多个结果。如果不是,它会自动将变量包装$result在 array() 中,这样即使只有一个 XML 也有相同的响应格式项目被解析。

于 2012-10-29T10:37:11.850 回答
0

尝试使用 PHPsimplexml类:

http://php.net/manual/en/book.simplexml.php

这是用 PHP 解析 XML 的最佳方式

于 2012-10-29T09:39:15.103 回答