На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> Ошибка при загрузке XML файла
    После компиляции при запуске выскакивает ошибка
    Project LexicalAnaliz.exe raised exception class EDOMParseError with message 'An invalid character was found in text content' и указывает на строку с кодом

    ExpandedWrap disabled
      _xml->LoadFromXML(OpenDialog1->FileName);


    Вот весь код

    ExpandedWrap disabled
      void __fastcall TForm1::Button1Click(TObject *Sender)
      {
          // Создаем объект типа _di_IXMLDocument
          _di_IXMLDocument _xml = NewXMLDocument();
       
          if (!OpenDialog1->Execute())
             exit(-1);
       
          Memo2->Lines->Clear();
       
          // Загружаем в него файл
          _xml->LoadFromXML(OpenDialog1->FileName);
          //Делаем активным
          _xml->Active = true;
          Memo1->Lines->Add(_xml->ChildNodes->Nodes[WideString("UNIT")]->Text);
          _xml->Active = false;
      }


    Содержание XML файла
    <TTC>
    <UNIT DELIMITER="0">program</UNIT>
    <UNIT DELIMITER="0">input</UNIT>
    <UNIT DELIMITER="0">output</UNIT>
    <UNIT DELIMITER="0">var</UNIT>
    <UNIT DELIMITER="0">intager</UNIT>
    <UNIT DELIMITER="0">end</UNIT>
    <UNIT DELIMITER="0">begin</UNIT>
    <UNIT DELIMITER="0">and</UNIT>
    <UNIT DELIMITER="0">or</UNIT>
    <UNIT DELIMITER="1">:</UNIT>
    <UNIT DELIMITER="1">,</UNIT>
    <UNIT DELIMITER="1">;</UNIT>
    <UNIT DELIMITER="1">:=</UNIT>
    <UNIT DELIMITER="1">.</UNIT>
    <UNIT DELIMITER="1"><=</UNIT>
    <UNIT DELIMITER="1">>=</UNIT>
    <UNIT DELIMITER="1">(</UNIT>
    <UNIT DELIMITER="1">)</UNIT>
    <UNIT DELIMITER="1">+</UNIT>
    <UNIT DELIMITER="1">-</UNIT>
    <UNIT DELIMITER="1">*</UNIT>
    <UNIT DELIMITER="1">/</UNIT>
    </TTC>

    Добавлено
    Как поправить?

    Помогите пожалуйста.

    Добавлено
    Прошу прощения

    вместо

    ExpandedWrap disabled
      Memo2->Lines->Clear();


    Надо

    ExpandedWrap disabled
      Memo1->Lines->Clear();
      1. XML-файл должен начинаться строкой вида <?xml version="1.0" encoding="UTF-8"?>
      2.
      Цитата
      <UNIT DELIMITER="1"><=</UNIT>
      <UNIT DELIMITER="1">>=</UNIT>
      В этих двух строках - ошибки. Уточни синтаксис для корректного ввода >= и <= (что-то типа &le, &ge - врать не буду, не помню).
      3. Желательно, чтобы файл был действительно в кодировке UTF-8
      К твоему файлу я добавил заголовок, убрал две проблемные строки и сохранил его в UTF-8. Интернет Эксплорер схавал :yes:
      Цитата
      <?xml version="1.0" encoding="UTF-8"?>
      <TTC>
      <UNIT DELIMITER="0">program</UNIT>
      <UNIT DELIMITER="0">input</UNIT>
      <UNIT DELIMITER="0">output</UNIT>
      <UNIT DELIMITER="0">var</UNIT>
      <UNIT DELIMITER="0">intager</UNIT>
      <UNIT DELIMITER="0">end</UNIT>
      <UNIT DELIMITER="0">begin</UNIT>
      <UNIT DELIMITER="0">and</UNIT>
      <UNIT DELIMITER="0">or</UNIT>
      <UNIT DELIMITER="1">:</UNIT>
      <UNIT DELIMITER="1">,</UNIT>
      <UNIT DELIMITER="1">;</UNIT>
      <UNIT DELIMITER="1">:=</UNIT>
      <UNIT DELIMITER="1">.</UNIT>
      <UNIT DELIMITER="1">(</UNIT>
      <UNIT DELIMITER="1">)</UNIT>
      <UNIT DELIMITER="1">+</UNIT>
      <UNIT DELIMITER="1">-</UNIT>
      <UNIT DELIMITER="1">*</UNIT>
      <UNIT DELIMITER="1">/</UNIT>
      </TTC>


      Добавлено
      Цитата Диссидент @
      что-то типа &le, &ge - врать не буду, не помню
      Наврал - больше или равно - сами символы надо отделить пробелами от угловых скобок : <UNIT DELIMETER="1"> >= </UNIT>.
        Internet Explorer у меня с изначально работал с этим XML файлом и без изменений в нём.
        Я внёс изменения в программе на С++ Builder таже ошибка, хотя при компиляции ошибок нет.
          user posted image
            Ну а толку я для большей надёжности эти строчки не закомментировал, а вообще удалил. Не работает.
              ну так удали из XML все строчки кроме одной и посмотри, что будет. Потом добавляй по одной и снова смотри. Найдешь строку, из-за которой возникает ошибка - приходи.

              P.S. символ '<' в последовательности "<=" все же надо заменить на &gt;
                Удалил почти всё.

                Вот так выгядит XML файл

                <TTC>
                </TTC>

                Ошибка Project LexicalAnaliz.exe raised exception class EDOMParseError with message 'An invalid character was found in text content' в первой строке, добавляв в первую строчку <?xml version="1.0" encoding="UTF-8"?> непомогло.

                Что же я не так делаю?
                  Цитата zuze @
                  encoding="UTF-8"
                  попробуй encoding="WINDOWS-1251" :ph34r:
                    encoding="WINDOWS-1251"

                    Непомогло.
                      Блин! Заголовок полностью записан?
                      ExpandedWrap disabled
                        <?xml version="1.0" encoding="UTF-8"?>
                        <!-- или так : -->
                        <?xml version="1.0" encoding="Windows-1251"?>
                      Если не секрет - приаттач сам файл. Мож там внутри ещё что-то есть? Чем он создан - ручками или программно?
                      Повторил твой эксперимент из трёх строк
                      ExpandedWrap disabled
                        <?xml version="1.0" encoding="UTF-8"?>
                        <TTC>
                        </TTC>
                      всё ОК!
                      Цитата zuze @
                      Ошибка Project LexicalAnaliz.exe raised
                      Ещё момент - чем открываешь? TXMLDocument'ом?
                        Набиваю XML руками.

                        ExpandedWrap disabled
                          <?xml version="1.0" encoding="UTF-8"?>
                          <TTC>
                          </TTC>


                        В Internet Explorer работает без ошибок, а в коде который я написал в самом начале неработает.

                        Текст XML файла в Memo1 не выводится.

                        Добавлено
                        Ничего не получайтся с этим XML я сделал с помощью текстовых файлов. С ними всё работает.

                        Большое спасибо.
                          Цитата zuze @
                          Текст XML файла в Memo1 не выводится.
                          Utf8ToAnsi() тебе в помощь :yes:
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0680 ]   [ 16 queries used ]   [ Generated: 27.09.24, 00:11 GMT ]