RapidXML支持xml:space="preserve"吗?

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的问题。


在搜索了RapidXML源代码后,我没有找到任何关于“XML:space”或“preserve”的参考信息--我认为RapidXML不支持这个功能。 - SMGreenfield
1个回答

3
现在我可以确定RapidXML 1.13不支持使用xml:space="preserve"属性来处理仅包含空格的文本节点。我在SourceForge上找到了一个补丁来解决这个问题:链接至 RapidXML 1.13仅包含空格的文本节点问题的补丁。该补丁修正了RapidXML仅包含空格的合法节点被跳过的问题,但并没有启用xml:space="preserve"属性。使用xml:space="preserve"属性将是更好的启用该bug修复的方法。或许未来熟悉RapidXML项目的某些人可以进行该更改。请注意不要改动HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接