首页 > 解决方案 > 在 .net 框架上使用与号 (&) 和 <、> 解析 XML(无法控制源代码)

问题描述

我们有一系列来自大型机程序的 XML 数据文件。这些由下游的 .Net 进程解析。一些内部文本字段包含需要转义的 & 等字符

不幸的是,我们实际上无法修复所有程序。当出现错误的 &、> 或 < 时.. 解决方法是要求用户编辑主机数据并拼出字符!所以像这个答案这样的解决方案是行不通的。

一些程序正确地转义了它们的 xml,例如,它们将数据中的 & 替换为&amp;并转义了 < 和 >。所以像这个答案这样的解决方案也不起作用!

我可以做的一件事是编写一个遵循如下规则的预处理器:

不要误会我的意思,实现我的预处理器将是一种有趣的编码体验,但我很忙,回归测试、修复我忘记的东西,并使其成熟会破坏我们对这个项目的预算。

幸运的是,我们看到在现代 HTML 中,这已经实现了。正如马克在我的一个链接答案中评论的那样,“HTML5 允许您不转义,但仅当随后的数据看起来不像有效的字符引用时”。所以:

乃至

所以我的问题是,.net 框架(或.Net、核心或标准)中的任何 xml 解析器是否允许打开此行为,即遵守现有的有效转义序列,但如果不是有效,允许它作为文字?

真诚感谢您的帮助:-)

标签: c#.netxmlframeworks

解决方案


推荐阅读