如何从XML数据中删除非ascii字符

我有一些XML数据,格式如下。 我的应用程序应该使用XMLReader读取它并对其进行一些处理。 但是,为了实现这一点,我需要删除或替换每行的第一部分,特别是<

 <   ....data.... <   ....data....</XML <   ....data.... and so on... 

在查看SO中的一些post之后我尝试了以下内容但到目前为止没有成功。 任何帮助将不胜感激!

 private static Regex _invalidXMLChars = new Regex( @"(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F\uFEFF\uFFFE\uFFFF]", RegexOptions.Compiled); static string ReplaceHexadecimalSymbols(string txt) { return _invalidXMLChars.Replace(txt, string.Empty); } 

注意:我接受了.txt格式的XML数据并尝试在每一行调用该函数,但它不起作用..调用该函数后字符仍然存在。

我会调查为什么这些角色首先出现在那里。 它看起来像原始XML和您的文件之间的某些编码问题。

无论如何,当你读一行时,只需删除之前的所有字符。