SimpleXMLElement到数组

时间:2013-06-17 11:45:14

标签: php xml arrays

我有SimpleXMLElement数据对象。

要将其转换为数组,我只需

$data = (array) $xmlObj;

没关系,但像<![CDATA[LOREM IPSUM]]>这样的数据会转换为空数组。我需要它转换为正常的数组行。

代码:

    $e = simplexml_load_string($fileContent);
    $books = array();
    foreach ($e->product as $book) {
        $books[] = (array) $book;
    }

1 个答案:

答案 0 :(得分:1)

function toArray(SimpleXMLElement $xml) {
        $array = (array)$xml;

        foreach ( array_slice($array, 0) as $key => $value ) {
            if ( $value instanceof SimpleXMLElement ) {
                $array[$key] = empty($value) ? NULL : toArray($value);
            }
        }
        return $array;
    }