【发布时间】:2016-12-09 12:50:52
【问题描述】:
我必须在 C# 中处理 xml 数据,但是,有时会出现非法 XML 字符。 例如,此 XML 代码将不会被解析,因为它是无效的:
<xml>Another way to write a heart is <3</xml>
XML 解析器会抛出错误,因为它无效,这是有道理的。 虽然,我似乎没有找到一种方法将只有一个“
<xml>Another way to write a heart is <3</xml>
脚注:它可以出现在 xml 中的任何节点中,它本身可能非常大,就像我之前说的,它并非总是发生......
有没有可以处理这个的函数?
【问题讨论】:
-
真的很困难,因为在 XML 中转义无效字符的全部目的是防止输出无效......您是否无法控制 XML 的生产者?正则表达式在这里可以提供帮助,因为您可以检查有效的标签名称(标签名称不能以数字开头,因此上面的示例可以修复)等等。
-
问题是,您没有使用 XML。您正在处理的文本字符串有点类似于 XML,但尚未根据 XML 规则正确构造。因此,不要寻找 XML 工具来解决这个问题。正如 Charleh 建议的那样,最好的解决办法是让向您提供此输入的任何人/任何人转而为您提供真正的 XML。