将XML转换为Json(标记为UTF-16但具有UTF-8内容的文档)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将XML转换为Json(标记为UTF-16但具有UTF-8内容的文档)相关的知识,希望对你有一定的参考价值。

我有一个XML,我想转换为JSON。

XML如下。

<?xml version="1.0" encoding="UTF-8"?>
<ns0:COMMAND xmlns:ns0="http://www.tibco.com/schemas/pinless/PINLESS.core/C2STransferBillPayment/Schema.xsd9">
   <ns0:TYPE>EXRCTRFRESP</ns0:TYPE>
   <ns0:TXNSTATUS>7893</ns0:TXNSTATUS>
   <ns0:DATE>14/02/18 12:22:30</ns0:DATE>
   <ns0:EXTREFNUM>Dibon20180214122227pnqeP1yxqN</ns0:EXTREFNUM>
   <ns0:TXNID />
   <ns0:MESSAGE>No such user exists, password is invalid.</ns0:MESSAGE>
</ns0:COMMAND>

我试过了

$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);

但得到了simplexml_load_string(): Entity: line 1: parser error : Document labelled UTF-16 but has UTF-8 content

有关如何将XML转换为JSON的任何建议吗?

答案

我认为你有一个命名空间问题

$responsexml = simplexml_load_string($xml_string);
$child_data_response = $responsexml->children('http://www.tibco.com/schemas/pinless/PINLESS.core/C2STransferBillPayment/Schema.xsd9');
print_r($child_data_response);

从那里你可以使它成为一个对象,你可以json编码或做任何你想要的东西

以上是关于将XML转换为Json(标记为UTF-16但具有UTF-8内容的文档)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XML/SGML 实体将 UTF-16 转换为 ASCII/ANSI?

如何将 XML 转换为具有二进制数据内容的 Json

使用杰克逊将具有重复元素的 XML 转换为 JSON

将 unicode 代码点转换为 utf-16

将 XML 转换为 JSON 格式

JSON转换为Java中具有类型属性的XML