C ++。 libxml2的。 <和>被替换为<和> INSIDE标签

时间:2010-11-19 12:09:28

标签: c++ libxml2

我正在编写一个从给定数据创建xml树的库。 问题是数据包含节点内的标签。 例如 <node> "this is a very <bold>huge</bold> text" </node> 引号 - 只是为了分隔给我的文字=) 当我使用libxml创建一个xml然后将其写入控制台(使用xmlDumpMEmeory)时,我得到: <node>this is a very &lt;bold&gt;huge&lt;/bold&gt; text</node>

我明白为什么会如此但却没有想法如何正常解决这个问题。 我看到的唯一解决方案是手动替换&lt;和&gt;在我的:: ToString()中 但是我应该替换其他任何符号(例如&lt;,&gt;)吗?

请注意

1 个答案:

答案 0 :(得分:0)

如果您希望在元素内容中嵌入此类特殊字符,则需要将它们包装为CDATA。一致的XML实现将始终执行您在此处注意到的内容。

libxml应该有一些方法将元素内容写为CDATA,应该为你解决这个问题。 This看起来很有希望:

  

功能:xmlTextWriterWriteCDATA

     

写一个xml CDATA。