XML в JSON, когда в PHP есть <! [CDATA []]>

Я пытаюсь преобразовать группу XML-файлов из каталога в формат JSON, но в моем XML есть CDATA, сын, когда он преобразует CDATA пустым. Я использовал simplexml_load_file($xml), но я прочитал, что не получает CDDATA, поэтому я попробовал simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA), но

Это просто дало мне эту ошибку:

Предупреждение: simplexml_load_string(): Сущность: строка 5: ошибка синтаксического анализатора: ожидается начальный тег, "<" не найдено в C:\xampp\htdocs\xmlfilter\xmlfilter.php в строке 65

Предупреждение: simplexml_load_string(): в C:\xampp\htdocs\xmlfilter\xmlfilter.php в строке 65

Предупреждение: simplexml_load_string(): ^ в C:\xampp\htdocs\xmlfilter\xmlfilter.php в строке 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>

Вот и мой код: введите описание изображения здесь

1 ответ

Решение
$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, не оба.

Другие вопросы по тегам