gpt4 book ai didi

c++ - RapidXML是否支持xml :space ="preserve"?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:26:31 26 4
gpt4 key购买 nike

我正在读取一个 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 1.13 不支持使用 xml:space="preserve"属性处理纯空白文本节点。我在 SourceForge 上找到了针对这个问题的补丁:

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

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

关于c++ - RapidXML是否支持xml :space ="preserve"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com