3

我正在阅读一个 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 问题。

4

1 回答 1

3

现在我很肯定 RapidXML 1.13 不支持使用 xml:space="preserve" 属性处理纯空白文本节点。我在 SourceForge 上为这个问题找到了一个补丁:

RapidXML 1.13 纯空白文本节点错误的补丁链接

此补丁纠正了 RapidXML 在仅包含空格时根本不会返回/跳过有效节点的问题。它不支持使用 xml:space="preserve" 属性。这将是启用错误修复的更可取的方法。也许更熟悉 RapidXML 项目的人可以在未来做出这种改变。

于 2013-09-05T21:58:22.240 回答