如何解决 0x01 无效字符异常。使用 Xdocument
How to workaround 0x01 invalid character exception. Using Xdocument
我正在尝试解析包含一堆 xml 文件的文件夹。 xml 文件包含有关某些车辆的信息。 XML 文件是自动生成的,其中一些包含无效字符。问题是,文件太多,我无法手动更正它们。所以我想知道如何绕过无效字符异常?
这是某些 xml 文件中的无效行:
<ECU EcuName="ABS" EcuFamily="BSS" CplNo="" 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
这将通过字符引用获得,就像您所显示的那样,而不是通过不允许的文字字符。
我正在尝试解析包含一堆 xml 文件的文件夹。 xml 文件包含有关某些车辆的信息。 XML 文件是自动生成的,其中一些包含无效字符。问题是,文件太多,我无法手动更正它们。所以我想知道如何绕过无效字符异常? 这是某些 xml 文件中的无效行:
<ECU EcuName="ABS" EcuFamily="BSS" CplNo="" 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
这将通过字符引用获得,就像您所显示的那样,而不是通过不允许的文字字符。