Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.58.173.30] |
|
Сообщ.
#1
,
|
|
|
После компиляции при запуске выскакивает ошибка
Project LexicalAnaliz.exe raised exception class EDOMParseError with message 'An invalid character was found in text content' и указывает на строку с кодом _xml->LoadFromXML(OpenDialog1->FileName); Вот весь код 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> Добавлено Как поправить? Помогите пожалуйста. Добавлено Прошу прощения вместо Memo2->Lines->Clear(); Надо Memo1->Lines->Clear(); |
Сообщ.
#2
,
|
|
|
1. XML-файл должен начинаться строкой вида <?xml version="1.0" encoding="UTF-8"?>
2. Цитата В этих двух строках - ошибки. Уточни синтаксис для корректного ввода >= и <= (что-то типа &le, &ge - врать не буду, не помню).<UNIT DELIMITER="1"><=</UNIT> <UNIT DELIMITER="1">>=</UNIT> 3. Желательно, чтобы файл был действительно в кодировке UTF-8 К твоему файлу я добавил заголовок, убрал две проблемные строки и сохранил его в UTF-8. Интернет Эксплорер схавал Цитата <?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> Добавлено Цитата Диссидент @ Наврал - больше или равно - сами символы надо отделить пробелами от угловых скобок : <UNIT DELIMETER="1"> >= </UNIT>. что-то типа &le, &ge - врать не буду, не помню |
Сообщ.
#3
,
|
|
|
Internet Explorer у меня с изначально работал с этим XML файлом и без изменений в нём.
Я внёс изменения в программе на С++ Builder таже ошибка, хотя при компиляции ошибок нет. |
Сообщ.
#4
,
|
|
|
|
Сообщ.
#5
,
|
|
|
Ну а толку я для большей надёжности эти строчки не закомментировал, а вообще удалил. Не работает.
|
Сообщ.
#6
,
|
|
|
ну так удали из XML все строчки кроме одной и посмотри, что будет. Потом добавляй по одной и снова смотри. Найдешь строку, из-за которой возникает ошибка - приходи.
P.S. символ '<' в последовательности "<=" все же надо заменить на > |
Сообщ.
#7
,
|
|
|
Удалил почти всё.
Вот так выгядит 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"?> непомогло. Что же я не так делаю? |
Сообщ.
#8
,
|
|
|
Цитата zuze @ попробуй encoding="WINDOWS-1251" encoding="UTF-8" |
Сообщ.
#9
,
|
|
|
encoding="WINDOWS-1251"
Непомогло. |
Сообщ.
#10
,
|
|
|
Блин! Заголовок полностью записан?
<?xml version="1.0" encoding="UTF-8"?> <!-- или так : --> <?xml version="1.0" encoding="Windows-1251"?> Повторил твой эксперимент из трёх строк <?xml version="1.0" encoding="UTF-8"?> <TTC> </TTC> Цитата zuze @ Ещё момент - чем открываешь? TXMLDocument'ом? Ошибка Project LexicalAnaliz.exe raised |
Сообщ.
#11
,
|
|
|
Набиваю XML руками.
<?xml version="1.0" encoding="UTF-8"?> <TTC> </TTC> В Internet Explorer работает без ошибок, а в коде который я написал в самом начале неработает. Текст XML файла в Memo1 не выводится. Добавлено Ничего не получайтся с этим XML я сделал с помощью текстовых файлов. С ними всё работает. Большое спасибо. |
Сообщ.
#12
,
|
|
|
Цитата zuze @ Utf8ToAnsi() тебе в помощь Текст XML файла в Memo1 не выводится. |