Boost XML 解析器可以支持 <![CDATA[ … ]]> 吗?

Posted

技术标签:

【中文标题】Boost XML 解析器可以支持 <![CDATA[ … ]]> 吗?【英文标题】:Boost XML parser can support <![CDATA[ … ]]>? 【发布时间】:2016-06-13 11:28:32 【问题描述】:

我已经能够使用 boost 读取 XML 文件并将相同的内容写入另一个文件。

<data>
<![CDATA[This is Test]]>
<prod name= "p1"/>
</data>

在写入另一个文件时,这将更改为以下格式。

<data>
This is Test
<prod name= "p1"/>
</data>

此处未格式化文本,例如输出文件中缺少 Is。

有人可以帮助如何为无格式文本编写确切的 as 格式吗?

【问题讨论】:

【参考方案1】:

Boost 没有有 XML 解析器。

Boost Property Tree /uses/ 一个 XML 解析器来...实现属性树的持久化。

它在底层使用的 XML 解析器是 RapidXML 的一个版本。

RapidXML 确实支持 CDATA:RapidXML giving empty CDATA nodes

我怀疑 Property Tree 使用它。

【讨论】:

以上是关于Boost XML 解析器可以支持 <![CDATA[ … ]]> 吗?的主要内容,如果未能解决你的问题,请参考以下文章

c++ boost xml解析器ptree.get函数——不接受节点名中的空格

Boost 和 xml 解析

使用Boost JSON解析器的JSON格式错误

提高 XML 解析器 RAM 消耗

boost::spirit 算术公式解析器无法编译

Boost属性树xml解析No such node()