Symfony-从xml到json,大数据文件

时间:2018-08-22 08:34:35

标签: php arrays json xml

我有一个xml格式的大日志文件,需要以数组的形式存储在单个数据库字段中。我通过

获得该文件
  

$ request-> getContent()

无论我写什么语法,我仍然会得到xml格式。

这是我的代码。

public function test(Request $request)
{
    file_put_contents('/var/www/html/var/logs/ehi.log', print_r($request->getContent() . '',true), FILE_APPEND);

    $array = json_decode(json_encode((array)($request->getContent())),true);

    dump($array);die;
}

内容看起来像..

enter image description here

1 个答案:

答案 0 :(得分:1)

来自converting SOAP XML response to a PHP object or arrayHow do I convert an object to an array?的灵感

首先,您需要从SOAP响应中获取所需的对象。为此,您可以使用simplexml_load_string

将其转换为simplexml对象

然后,您可以通过沿着子树或使用xpath来“导航” simplexml对象。无论您喜欢什么。

有了对象后,您可以使用第二个问题(get_object_vars)中列出的函数将其转换为数组。

$soap     = simplexml_load_string($request->getContent());
$transaction = $soap->children('http://schemas.xmlsoap.org/soap/envelope/')
                     ->Body->children()
                         ->GetTransaction;
$transaction_as_array = get_object_vars($transaction);