RapidXML是否支持xml:space ="保留"?

时间:2013-09-04 18:03:30

标签: c++ xml xml-parsing rapidxml

我正在阅读一个XML文件,其中包含“仅空白文本节点”:

<p>I <b>love</b> <i>Mozart</i>.</p>

在上面(简化)的例子中,在结束标记和开始标记之间有空格(单个空格)。我需要保留那个空间。

在RapidXML中解析时,我只指定“parse_comment_nodes”,所以我假设“parse_trim_whitespace”和“parse_normalize_whitespace”没有生效。所以我试图使用“xml:space”语法:

<p xml:space="preserve">I <b>love</b> <i>Mozart</i>.</p>

...但似乎RapidXML不尊重它。当我遍历所有兄弟节点时,我从未看到一个值为“”的节点。

我一直在阅读(并重新阅读)文档,并在此处搜索StackOverflow,但到目前为止还没有弄清楚这是我的语法问题还是RapidXML问题。

1 个答案:

答案 0 :(得分:1)

现在我认为RapidXML 1.13不支持使用xml:space =“preserve”属性来处理仅限空白的文本节点。我在SourceForge上找到了这个问题的补丁:

Link to patch for RapidXML 1.13 whitespace-only text node bug

此修补程序纠正了RapidXML在仅包含空格时从不返回/跳过有效节点的问题。它不能启用xml:space =“preserve”属性。这将是启用错误修复的首选方法。也许更熟悉RapidXML项目的人可以在将来做出改变。