当 PHP 中有 <![CDATA[]]> 时,XML 到 JSON

XML to JSON when there is <![CDATA[]]> in PHP

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

它只是给了我这个错误:

Warning: simplexml_load_string(): Entity: line 5: parser error : Start tag expected, '<' not found in C:\xampp\htdocs\xmlfilter\xmlfilter.php on line 65

Warning: simplexml_load_string(): in C:\xampp\htdocs\xmlfilter\xmlfilter.php on line 65

Warning: simplexml_load_string(): ^ in C:\xampp\htdocs\xmlfilter\xmlfilter.php on line 65

在新文件的末尾写入 '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>

这就是我的代码:

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

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

simplexml_load_string 将字符串中的一些 XML 作为输入,returns 是一个简单的 XML 对象。您给它一个简单的 XML 对象作为输入,而不是字符串。这样不行。

使用simplexml_load_filesimplexml_load_string,不能同时使用。