1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
|
|||||||||||
1 | |||||||||||
Ошибка при чтении xml, как ее исправить?18.04.2016, 15:26. Показов 11634. Ответов 14
Метки нет (Все метки)
Выдает ошибку(
Ошибка: Не допустимый знак для указанной кодировки, строка 3 , позиция 32) при чтении xml файла в строке:
0
|
18.04.2016, 15:26 | |
Ответы с готовыми решениями:
14
Ошибка при чтении xml документа В чем ошибка при чтении строк из XML? Ошибка при чтении пустого XML-файла При чтении XML файла выводится ошибка |
3 / 3 / 1
Регистрация: 27.12.2013
Сообщений: 77
|
|
18.04.2016, 21:18 | 3 |
Что за странный символ Ђ в 3-ей строке?
0
|
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
|
|
19.04.2016, 06:44 [ТС] | 4 |
Вот этот файл.
0
|
12289 / 8641 / 1307
Регистрация: 21.01.2016
Сообщений: 32,522
|
|
19.04.2016, 06:56 | 5 |
SVD102, в сообщение об ошибке очень чётко и понятно сказано, что не так - "левый" символ в третьей строке твоего документа. В твоём первом посте в третьей строке этот символ виден. Убери его и всё заработает.
0
|
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
|
|
19.04.2016, 07:14 [ТС] | 6 |
Я понимаю, что можно так от руки сделать, но это не решение проблемы мне кажется, нельзя разве программным путем это решить, вдруг в другом документе тоже на каком то месте будет некий подобный символ.
0
|
12289 / 8641 / 1307
Регистрация: 21.01.2016
Сообщений: 32,522
|
|
19.04.2016, 07:19 | 7 |
SVD102, я не говорил "от руки". Загружай документ не напрямую из файла, а через свой TextReader, который на ходу такие символы убирать будет.
0
|
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
|
|
19.04.2016, 07:32 [ТС] | 8 |
можно код
0
|
12289 / 8641 / 1307
Регистрация: 21.01.2016
Сообщений: 32,522
|
|
19.04.2016, 07:41 | 9 |
SVD102, нет не можно. Это я тебе оставлю как домашнее задание)) Я просто подкидываю идею: фильтруй XML-документ перед загрузкой его в XDocument. Тут можно несколько вариантов использовать:
1) Перед загрузкой можно изменить файл документа отдельно; 2) Загрузи XML в строку и отфильтруй её, а потом загрузи через XDocument.Parse; 3) Унаследуй от TextReader свой фильтр и подсунь его в XDocument.Load (я бы именно так и поступил - самый красивый способ);
0
|
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
|
|
19.04.2016, 08:03 [ТС] | 10 |
Как понять: "Унаследуй свой фильтр"
0
|
12289 / 8641 / 1307
Регистрация: 21.01.2016
Сообщений: 32,522
|
|
19.04.2016, 08:10 | 11 |
SVD102, есть такой абстрактный класс TextReader, который умеет текстовые файлы построчно читать. Можно создать объект этого класса (точнее любого унаследованного от него - типа StringReader) передав ему имя твоего XML-документа и уже этот объект передать в XDocument.Load.
Так вот, можно унаследоваться от класс TextReader (получить свой класс на базе этого) и при построчном чтении каждую строку фильтровать от мусорных символом. И объект этого класса передавать в XDocument.Load. Но это один из вариантов. Если ты вообще ничего не понял, то просто загрузи XML в строку (File.ReadAllText), удали мусорные символы (String.Replace) и загрузи полученный "чистый" XML в XDcoument.Parse. Это быдлячий варинт, но простой.
0
|
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
|
||||||
19.04.2016, 08:13 [ТС] | 12 | |||||
0
|
12289 / 8641 / 1307
Регистрация: 21.01.2016
Сообщений: 32,522
|
||||||
19.04.2016, 08:19 | 13 | |||||
Скорее так:
0
|
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
|
|
19.04.2016, 08:26 [ТС] | 14 |
Я только так придумал, если не удалять этот символ то и так все нормально работает у меня, так что оставлю.
0
|
Администратор
|
|
19.04.2016, 15:23 | 15 |
SVD102, у XML файла указана неверная кодировка. Вместо utf-8 должна быть похоже windows-1252. Если есть возможность, то лучше исправь код который создает данный файл.
0
|
19.04.2016, 15:23 | |
19.04.2016, 15:23 | |
Помогаю со студенческими работами здесь
15
Ошибка при чтении Xml с комментариями типа <!----> Как проигнорировать некорректные символы при чтении xml Кракозябры при чтении русского текста из файла на C++, как исправить? Ошибка при чтении XML (Message="1" не является допустимым маркером) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |