PHP中有<! - [CDATA []] - >时的XML到JSON

时间:2018-04-06 08:18:24

标签: php json xml cdata simplexml-load-string

我正在尝试将一组xml文件从一个目录转换为json格式但是在我的xml中有CDATA,当它转换CDATA时,它变为空。我使用的是simplexml_load_file($ xml),但我读到了没有获得CDDATA,所以我尝试了simplexml_load_string($ xml,“SimpleXMLElement”,LIBXML_NOCDATA)但是

它只是给了我这个错误:

  

警告:simplexml_load_string():实体:第5行:解析器错误:开始   标签预期,'&lt;'在C:\ xampp \ htdocs \ xmlfilter \ xmlfilter.php中找不到   第65行

     

警告:simplexml_load_string():in   第65行的C:\ xampp \ htdocs \ xmlfilter \ xmlfilter.php

     

警告:simplexml_load_string():^ in   第65行的C:\ xampp \ htdocs \ xmlfilter \ xmlfilter.php

在新文件的末尾写下'false?¿':

"LETRA_IMPRENTA":{},"LETRA_MAYUSCULA":{},"PANTALLA_VERTICAL":{},"PANTALLA_PEQUENA":{},"NAVEGADOR_CHROME":{},"SALIR_MITAD_BODY":{},"SALIR_MITAD_GUARDAR":{},"SALIR_MITAD_NOGUARDAR":{}}}falsefalsefalsefalsefalsefalsefalsefalse

我的xml示例:

<LANGUAGE><HELLO><![CDATA[hello]]></HELLO></LANGUAGE>

这就是我的代码: enter image description here

1 个答案:

答案 0 :(得分:3)

$xml = simplexml_load_file("xml/".$y);
simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA)

simplexml_load_file将字符串中的文件路径作为输入,并返回一个简单的XML对象。这很好。

simplexml_load_string将字符串中的一些XML作为输入并返回一个简单的XML对象。您给它一个简单的XML对象作为输入,而不是字符串。这不太好。

使用simplexml_load_file simplexml_load_string,而不是两者。