Сохранять XML-код при использовании PHP XMLWriter :: writeElement

У меня есть таблица mySQL с полями, содержащими копию, которая преобразуется в XML. Некоторые копии в полях mySQL выделены жирным шрифтом вокруг слов:

<b>This will be bold</b>, this won't be.

Однако, когда я приступаю к созданию своего XML-документа с помощью XMLwriter, копия оказывается выглядит так:

&lt;b&gt;This will be bold&lt;/b&gt;, this won't be

Может ли кто-нибудь посоветовать мне, как я могу избежать кодировки символов для этих тегов?


person user1507535    schedule 11.10.2012    source источник


Ответы (2)


Я предполагаю, что ваш код должен использовать XMLWriter::writeRaw вместо XMLWriter::text.

Обратите внимание, что это будет хорошим решением только в том случае, если вы уверены, что содержимое базы данных будет правильным XML. В противном случае вам нужно будет сначала запустить этот контент через парсер DOM, например DOMDocument::loadXML с установлен флаг DOMDocument::recover, а затем экспортировать содержимое с DOMDocument::saveXML и передать его XMLWriter::writeRaw.

person jimp    schedule 11.10.2012
comment
XMLWriter :: writeRaw сделал свое дело, я тоже принял к сведению ваше предостережение в отношении этого решения. - person user1507535; 12.10.2012

Передайте свою копию через html_entity_decode(), например:

echo html_entity_decode("&lt;b&gt;This will be bold&lt;/b&gt;, this won't be");
person raidenace    schedule 11.10.2012