SimpleXML с декодированными объектами

Как я могу заставить SimpleXML заменить сущности HTML/XML их соответствующими символами в PHP?

Предположим, что этот XML-документ в строке:

$data = '<?xml version="1.0" encoding="ISO-8859-1"?><example>Tom &amp; Jerry</example>'

Очевидно, я хочу, чтобы SimpleXml декодировал &amp; в &, Он не делает это по умолчанию. Я пробовал эти два способа, ни один из которых не работал:

$xml = new SimpleXMLElement($data);
$xml = new SimpleXMLElement($data, LIBXML_NOENT);

Каков наилучший способ декодирования сущностей XML? Я думаю, XML-парсер должен это сделать, я хотел бы избежать запуска html_entity_decode до разбора (на самом деле, это тоже не сработает). Может ли это быть проблемой с кодировкой строки? Если так, как я мог отследить и исправить это?

1 ответ

Я не знаю, будет ли это работать в некоторых случаях, но может быть...

$xml = new SimpleXMLElement(html_entity_decode($data));

http://www.php.net/manual/en/function.html-entity-decode.php

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