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

2024-03-25

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

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

在查看了 SO 中的一些帖子后,我尝试了以下操作,但到目前为止还没有成功。任何帮助将不胜感激!

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 和您的文件之间存在一些编码问题。

无论如何,当你读一行时,只需删除前面的所有字符即可<XML>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 XML 数据中删除非 ASCII 字符 的相关文章

随机推荐