У меня проблема с simplexml_load_string
ошибкой из-за ошибок синтаксического анализа из-за полезной нагрузки xml, поступающей из базы данных с символами Unicode в ней.
Я в растерянности, как заставить php прочитать это и использовать xml, как обычно. Код работал нормально, пока люди не стали креативными с отправляемыми данными.
К сожалению, я не могу изменить исходные данные, мне нужно работать с тем, что я получаю, чтобы дать вам представление, одно поле, которое нарушает его в исходном необработанном чеке, выглядит так:
<FirstName>?</FirstName>
Ранее код работал нормально, анализируя xml простой строкой:
$xmlresult = simplexml_load_string($result, 'SimpleXMLElement',LIBXML_NOCDATA);
Однако с этими символами Юникода это просто ошибки.
В зависимости от того, что я использую для просмотра данных, если я дам дамп сырой полезной нагрузки, это может выглядеть так:
<d83d><dc3a>
или <U+D83D><U+DC3A>
Чтение немного в стеке, казалось, DOM мог бы работать, но там тоже не повезло.
Входящий полезный груз имеет заголовок:
?xml version="1.0" encoding="UTF-8"?>
данные поступают через
<data type="cdata"><![CDATA[<payload>
Я в полной растерянности, надеюсь, я могу получить некоторую помощь, чтобы помочь мне преодолеть этот горб с этой обработкой данных.