【问题标题】:Delimiting double quotes for replacing XML characters分隔双引号以替换 XML 字符
【发布时间】:2013-05-12 15:57:15
【问题描述】:

我正在使用我在 CodeProject here 上找到的模板 Excel 导出类

在类中,有一种方法可以替换某些字符以使它们对 Excel 安全,但是以下行似乎使系统出错,因为它正在删除分隔的 \" 引号并将其替换为单个双精度引用。

 input = input.Replace("\"", """);

如果我再次将其划定为:

input = input.Replace("\"", "\"");

它违背了替换的目的,如果我保持原样,班级的其余部分就会跳闸,因为它是一个未闭合的字符串。有没有人遇到过这个问题或有任何想法来解决这个问题?

谢谢, 史蒂夫

【问题讨论】:

  • 三双引号示例甚至无法编译 - 你能澄清你要替换的内容吗?
  • 您的意思是要将“\\\””替换为“\””吗?
  • 那么需要该方法从 XML 中删除 \" 转义符,该转义符在早期阶段已实现并附加到字符串编写器,然后需要在下载文件之前删除 \'s Excel 的 XML 解析会出错。我会尝试你的建议,谢谢

标签: c# xml asp.net-mvc escaping export-to-excel


【解决方案1】:

我强烈建议您不要只使用本文的代码。看起来它没有正确显示(我怀疑它应该是Replace("\"", """),但即使它正确的,它也不是好的代码。

改为使用 XML API - LINQ to XML 非常易于使用。这样您就不需要自己进行任何 XML 转义。

您几乎应该从不通过将 XML 文档视为简单文本来创建它们。相反,总是使用 XML API,这是一种确保您最终创建有效 XML 的更简洁的方法。

【讨论】:

  • 谢谢,我会检查一下,因为我觉得那里的 XML 中还有很多问题,而不仅仅是引号转义......
  • @StephenLeake:没错。这就是试图用简单的字符串操作来做 XML 的问题——如果你不小心,就会出现各种各样的问题。始终使用 XML API。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
  • 2013-06-13
  • 2016-06-13
  • 2021-03-21
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多