C ++. libxml2. <и> заменяются на теги <и> INSIDE - PullRequest
0 голосов
/ 19 ноября 2010

Я пишу библиотеку, которая создает дерево XML на основе данных. Проблема в том, что данные содержат теги внутри узлов. например <node> "this is a very <bold>huge</bold> text" </node> цитаты - просто отдельный текст, данный мне =) Когда я создаю xml с использованием libxml и затем записываю его в консоль (используя xmlDumpMEmeory), я получаю: <node>this is a very &lt;bold&gt;huge&lt;/bold&gt; text</node>

Я понимаю, почему это так, но понятия не имею, как это исправить. Единственное решение, которое я вижу, - это вручную заменить <и> в моем :: ToString () Но есть ли другие символы (например, <,>), которые я должен заменить?

Спасибо за внимание

1 Ответ

0 голосов
/ 19 ноября 2010

Если вы хотите встроить специальные символы, такие как это, в содержимое элемента, они должны быть заключены в CDATA.Соответствующая реализация XML всегда будет делать то, что вы заметили здесь.

libxml должен иметь какой-то способ записать содержимое элемента в виде CDATA, что должно исправить это для вас. Это выглядит многообещающе:

Функция: xmlTextWriterWriteCDATA

Запись xml CDATA.

...