如何解决 0x01 无效字符异常。使用 Xdocument

How to workaround 0x01 invalid character exception. Using Xdocument

我正在尝试解析包含一堆 xml 文件的文件夹。 xml 文件包含有关某些车辆的信息。 XML 文件是自动生成的,其中一些包含无效字符。问题是,文件太多,我无法手动更正它们。所以我想知道如何绕过无效字符异常? 这是某些 xml 文件中的无效行:

<ECU EcuName="ABS" EcuFamily="BSS" CplNo="&#01;" Address="0x0B" ConfigChecksum="0x00000000" Updated="false">

我尝试使用 Streamreader 但没有成功。这是我的代码:

 XDocument docs = XDocument.Load(new System.IO.StreamReader((path), Encoding.GetEncoding("utf-8")));                
            var nameValues =
                from fpc in docs.Descendants("FPC")
                select new
                {
                    Name = (string)fpc.Attribute("Name"),
                    Value = (string)fpc.Attribute("Value")
                };

如果需要,您可以使用例如

加载文件
XDocument doc;
using (XmlReader xr = XmlReader.Create(path, new XmlReaderSettings() { CheckCharacters = false }))
{
  doc = XDocument.Load(xr);
}
// now query document here

这将通过字符引用获得,就像您所显示的那样,而不是通过不允许的文字字符。