gpt4 book ai didi

c++ - 从 XML 解析字符串时向 n 添加了额外的反斜杠

转载 作者:数据小太阳 更新时间:2023-10-29 03:02:01 27 4
gpt4 key购买 nike

我将一个 xml 数据读入 C++ 应用程序。有些数据是多行字符串。每个新行都由 '\n' 转义字符分隔。但是当它被加载到程序中时,反斜杠 n 从左边得到额外的反斜杠.例如:

在 XML 中:

<node  attrStr = "Hello!\nWhat's your name?"  />

程序中:

"Hello!\\nWhat's your name?"

所以它导致 '\' 和 'n' 成为单独的字符。如果将字符串硬编码到程序源代码中,则不会发生这种情况。如何解决这个问题?

重要的是要注意,XML 字符串被读入 std::wstring 以处理 unicode 字符。

找到答案 here .

在 XML 中用 替换 '\n' 解决了这个问题。

最佳答案

如果您想转义 XML 中的换行符,您必须使用实体 。所以正确的 XML 应该是这样的:

<node attrStr = "Hello!&#10;What's your name?" />

由于 XML 不允许使用反斜杠转义字符,因此字符串“\n”被读取为两个普通字符“\”和“n”。如果要加载带有正确换行符的 XML 内容,则必须将“\n”部分替换为“"正如@Angew 提出的答案中所建议的那样。

或者,您也可以在读取 XML 文件之前对其进行修改或预处理。

关于c++ - 从 XML 解析字符串时向 n 添加了额外的反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28873930/

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