在将xml转换为php数组时,空xml字段生成空数组而不是空字符串

时间:2014-08-27 17:17:34

标签: php arrays xml json simplexml

我正在使用一段很好的短代码将我的xml字符串转换为php数组

$products = json_decode(json_encode(simplexml_load_string($products_xml)),TRUE);

一切正常,除非当我得到一个空数组而不是字符串时xml字段为空 - 并且当写入我的SQL数据库时,我看到字符串'数组'而不是空场。

有没有一个很好的方法用PHP做到这一点?


与此同时,我设法用这段代码解决了问题:

$products = json_decode(str_replace('{}', '""', json_encode(simplexml_load_string($products_xml))),TRUE);

2 个答案:

答案 0 :(得分:0)

如果json_encoded xml中的任何内容字段包含" {}",则此代码将中断。它发生在我身上,我正在制定一个解决方案来防止这种情况。

答案 1 :(得分:0)

function removeElementArrays($array) {
        $temp = [];
        foreach ($array as $record){
            $ta = [];
            foreach ($record as $k=>$v) {
                if (is_array($v)) {
                    $ta[$k]='';
                } else {
                    $ta[$k]=$v;
                }
            }
            array_push($temp, $ta);
        }
        return $temp;
    }