Показать сообщение отдельно
  #2  
Старый 11.09.2017, 06:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Походу, в TXMLDocument используется какая-то "старая" имплементация парсера. Новый парсер от МС все читает нормально. Так что тут всего 2 варианта:
1. Мы знаем, на чем он "ломается" - там линия из дефисов, она ему и не нравится. Так что перед загрузкой просто меняем ее на что-нить другое. Если эта линия так важна, то при сохранении меняем обратно. Т.е. читаем файл как текст, меняем линию на что-нить другое, потом создает TStringStream и читаем xml из него; при сохранении делаем все в обратном порядке - xml сохраняем в TStringStream, потом в полученной строке меняем нашу закладку обратно на линию дефисов и уже полученный результат сохрняем в файл.
2. Ищем более подходящий парсер - менее разборчивый. Ну или пользуемся микрософтовским, только самым последним, без дельфиной обертки.
Ответить с цитированием