我有一个包含一些 XML 的字符串。例如:
<foo>
<bar>this is < than this</bar>
</foo>
在将其加载到 XmlDocument
之前,我需要从中删除非法字符。
任何想法。
提前致谢
最佳答案
I have a string containing some Xml.
不,你不知道。您有一些格式不正确的类似 XML 的文本。一旦它们像那样粘在一起,就很难找到特殊字符。哦,您可以尝试寻找“<”或“>”,但它们仍然会出现。我的建议是后退一步,看看那个字符串是从哪里来的。更改该代码,使其处理特殊字符。
在没有任何其他选项的情况下,我可能会暂时忽略 XML 工具(因为当您尝试给它们提供字符串时它们会抛出)并进行某种打开/关闭的运行计数(奇数/即使是引号)在特殊字符上。例如,一旦遇到 <,就不允许再遇到一个,直到遇到 >。不幸的是,您不能在属性中使用 < 等,所以我不知道您将如何处理 <foo p1="a<a">
但至少你可以修复 <foo>a<A</foo>
. (假设他们永远不会在标签名称中放置 <,遇到第二个意味着您需要备份并转义第一个。) 一旦遇到 >,就不能再有另一个了。等等。我的同情。
关于c# - 从 XML 字符串中删除非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5409220/