Как обойти 0x01 недопустимое символьное исключение. Использование 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")
};
1 ответ
Решение
Если вам нужно, вы можете загрузить файл, например, с
XDocument doc;
using (XmlReader xr = XmlReader.Create(path, new XmlReaderSettings() { CheckCharacters = false }))
{
doc = XDocument.Load(xr);
}
// now query document here
Это получит ссылки на символы, подобные той, которую вы показали, а не запрещенные литеральные символы.