Показать сообщение отдельно
  #1  
Старый 11.09.2017, 01:22
AnatoliK AnatoliK вне форума
Прохожий
 
Регистрация: 11.09.2017
Сообщения: 9
Версия Delphi: Delphi 10 Lite
Репутация: 10
Вопрос Загрузка XML (Ошибочный синтаксис)

Здравствуйте уважаемые знатоки.

Пришла в голову идея по созданию программы, которая будет редактировать xml файл с настройками модификации для одной не безызвестной на данный момент игрушки. Также в ней должна присутствовать возможность воспроизведения звуковых файлов.

Так как модификация в какой-то степени обширная, она разделена на компоненты. У каждого компонента свой xml файл. Каких-то специализированных знаний по программированию не имею. Начал потихоньку делать пользуясь гуглом и собрал программу для настройки одного xml файла. 2 радиобаттона, 4 комбобокса, 4 медиаплеера, 2 обычных кнопки, несколько надписей, пара картинок и проект готов. Код стремный показывать кому-либо даже стыдно. Но все работает и вроде без замечаний.

Дальше думал, что раз получилось слепить один настройщик другие пойдут как на конвейере, но что-то пошло не так. При попытке загрузить xml файл для дальнейшей работы с ним Delphi выдает ошибку.

error.jpg

Начал гуглить и в конце концов вычитал, что "Комментарий начинается последовательностью «<!--» и заканчивается последовательностью «-->», внутри не может встречаться комбинация символов «--»".

Ссылка на источник https://ru.wikipedia.org/wiki/XML#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.87.D0.B0.D0. BD.D0.B8.D1.8F

Теперь собственно несколько вопросов Вам:
Можно-ли как-то обойти данную ошибку?
Можно-ли открыть данный файл не как xml и изменить в нем данную строку на ту, которая не вызовет эту ошибку? (то есть поменять - на =)

Вот мой код для загрузки xml файла:

Код:
procedure TForm1.FormCreate(Sender: TObject);

begin
      if FileExists('..\mods\configs\RTCS\rtcs_buzzer.xml') then
      begin
      XML:=TXMLDocument.Create(Self);
      XML.LoadFromFile('..\mods\configs\RTCS\rtcs_buzzer.xml');
      XML.Active:=true;
      StatusMain:= XML.DocumentElement.ChildNodes[2].ChildNodes[0].Text;

            if AnsiCompareText(StatusMain,'true') = 0 then
                  RadioButton1.Checked:=True;
            if AnsiCompareText(StatusMain,'false') = 0 then
                  RadioButton2.Checked:=True;

      XML.Active:=false;
      end
      else
      begin
      Application.Title := '';
      ShowMessage('Файл с настройками модификации не обнаружен, проверьте правильность установки модификации!');
      end;
end;

Также прилагаю сам файл xml и прошу сильно не ругаться на кривоту кода.
rtcs_buzzer.rar
Не получилось загрузить xml на форум без архива. Загрузчик ругался и писал, что некорректный файл.

Закинул картинкой для тех кто думает, что в архиве вирусы
xml.png
Ответить с цитированием