Я пытаюсь преобразовать простую строку HTML с базовым форматированием, подобным этому
<b>my html string</b><br/>
second line of my html string... etc
, сначала в XHTML, затем вставить в DOMDocument и преобразовать его в XSLFO, используя таблицу стилей преобразования html2fo.xsl.
Проблема в том, что каждый специальный символ, который я получаю в строке html, кодируется сущностью, и когда я пытаюсь загрузить его в DOMDocument, я получаю сообщение об ошибке
DOMDocument::loadXML() [<a href='domdocument.loadxml'>domdocument.loadxml</a>]: Entity 'eacute' not defined in Entity, line: 7
Я на самом деле использую библиотеку tidy для преобразования htmlв xhtml, а затем обработчик php xslt, чтобы получить мой окончательный файл XSLFO.Проблема в том, что даже если я использую свойство LIBXML_NOENT, ошибка возникает.
private static $tidyConfig = array (
'force-output' => true,
'clean' => false,
'output-xhtml' => true,
'show-body-only' => false,
'wrap' => 0,
'doctype' => 'omit'
);
$xp = new XSLTProcessor();
$xmlDoc = new Mv_Dom_Document();
$dirXslt = $GLOBALS['G_config']['XSLT_STYLESHEETS'];
$aXsltSS = GestionFichiers::getContenuRep($dirXslt, array(), null);
$tidyConfig = (!is_null($tidyConfig)) ? $tidyConfig : Mv_Html_Utils::$tidyConfig;
$tidy = new tidy();
$tidy->parseString($html, $tidyConfig);
// on convertit la chaine en XHTML
$tidy->cleanRepair();
// on la charge dans un DOMDocument
$xmlDoc->loadXML($tidy->value, LIBXML_NOENT);