загрузить xml, содержащий неэкранированные символы PHP

#php #xml #regex

#php #xml #регулярное выражение

Вопрос:

Я новичок в PHP 🙂

Я пытаюсь загрузить XML, который включает неэкранированные символы. Я хочу использовать РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ. Кто-нибудь может мне сказать, как это сделать правильно?

Это мой простой XML-файл:

 <?xml  version="1.0" encoding="utf-8"?>
<test>
    <url>http://example.com?T=2amp;P=1</url>
</test>
  

и мой код:

 $test = file_get_contents( __DIR__ . '/../test/test.xml' );
$objXml = simplexml_load_string( $test );
var_dump( $objXml );
  

и я получаю эту ошибку:

 "simplexml_load_string(): Entity: line 3: parser error : EntityRef: expecting ';'"
  

есть идеи, как я могу это получить?

Комментарии:

1. почему вы не используете simplexml_load_file()

Ответ №1:

Просто попробуйте инкапсулировать данные в XML:

 <?xml version="1.0" encoding="utf-8"?>
<test>
    <url><![CDATA[http://example.com?T=2amp;P=1]]></url>
</test>
  

Также примите во внимание комментарий @Rakesh Sharma, чтобы использовать simplexml_load_file()

Информация о CDATA