Я пытаюсь понять, как QXmlStreamReader работает в приложении C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Юникода, поэтому я решил попробовать небольшой тестовый пример с более простым документом. К сожалению, я уперся в стену. Вот пример XML-файла:
<?xml version="1.0" encoding="UTF-8" ?>
<persons>
<person>
<firstname>John</firstname>
<surname>Doe</surname>
<email>john.doe@example.com</email>
<website>http://en.wikipedia.org/wiki/John_Doe</website>
</person>
<person>
<firstname>Jane</firstname>
<surname>Doe</surname>
<email>jane.doe@example.com</email>
<website>http://en.wikipedia.org/wiki/John_Doe</website>
</person>
<person>
<firstname>Matti</firstname>
<surname>Meikäläinen</surname>
<email>matti.meikalainen@example.com</email>
<website>http://fi.wikipedia.org/wiki/Matti_Meikäläinen</website>
</person>
</persons>
... и я пытаюсь разобрать его, используя этот код:
int main(int argc, char *argv[])
{
if (argc != 2) return 1;
QString filename(argv[1]);
QTextStream cout(stdout);
cout << "Starting... filename: " << filename << endl;
QFile file(filename);
bool open = file.open(QIODevice::ReadOnly | QIODevice::Text);
if (!open)
{
cout << "Couldn't open file" << endl;
return 1;
}
else
{
cout << "File opened OK" << endl;
}
QXmlStreamReader xml(&file);
cout << "Encoding: " << xml.documentEncoding().toString() << endl;
while (!xml.atEnd() && !xml.hasError())
{
xml.readNext();
if (xml.isStartElement())
{
cout << "element name: '" << xml.name().toString() << "'"
<< ", text: '" << xml.text().toString() << "'" << endl;
}
else if (xml.hasError())
{
cout << "XML error: " << xml.errorString() << endl;
}
else if (xml.atEnd())
{
cout << "Reached end, done" << endl;
}
}
return 0;
}
... тогда я получаю следующий результат:
C: \ xmltest \ Debug> Пример xmltest.exe .xml
t Я анализирую XML-файл с помощью QXmlStreamReader из Qt? Я пытаюсь понять, как QXmlStreamReader работает для приложения C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Unicode ...Я пытаюсь понять, как QXmlStreamReader работает в приложении C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Юникода, поэтому я решил попробовать небольшой тестовый пример с более простым документом. К сожалению, я уперся в стену. Вот пример XML-файла:
<?xml version="1.0" encoding="UTF-8" ?> <persons> <person> <firstname>John</firstname> <surname>Doe</surname> <email>john.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Jane</firstname> <surname>Doe</surname> <email>jane.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Matti</firstname> <surname>Meikäläinen</surname> <email>matti.meikalainen@example.com</email> <website>http://fi.wikipedia.org/wiki/Matti_Meikäläinen</website> </person> </persons>
... и я пытаюсь разобрать его, используя этот код:
int main(int argc, char *argv[]) { if (argc != 2) return 1; QString filename(argv[1]); QTextStream cout(stdout); cout << "Starting... filename: " << filename << endl; QFile file(filename); bool open = file.open(QIODevice::ReadOnly | QIODevice::Text); if (!open) { cout << "Couldn't open file" << endl; return 1; } else { cout << "File opened OK" << endl; } QXmlStreamReader xml(&file); cout << "Encoding: " << xml.documentEncoding().toString() << endl; while (!xml.atEnd() && !xml.hasError()) { xml.readNext(); if (xml.isStartElement()) { cout << "element name: '" << xml.name().toString() << "'" << ", text: '" << xml.text().toString() << "'" << endl; } else if (xml.hasError()) { cout << "XML error: " << xml.errorString() << endl; } else if (xml.atEnd()) { cout << "Reached end, done" << endl; } } return 0; }
... тогда я получаю следующий результат:
C: \ xmltest \ Debug> Пример xmltest.exe .xml
t Я анализирую XML-файл с помощью QXmlStreamReader из Qt? Я пытаюсь понять, как QXmlStreamReader работает для приложения C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Unicode ...Я пытаюсь понять, как QXmlStreamReader работает в приложении C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Юникода, поэтому я решил попробовать небольшой тестовый пример с более простым документом. К сожалению, я уперся в стену. Вот пример XML-файла:
<?xml version="1.0" encoding="UTF-8" ?> <persons> <person> <firstname>John</firstname> <surname>Doe</surname> <email>john.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Jane</firstname> <surname>Doe</surname> <email>jane.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Matti</firstname> <surname>Meikäläinen</surname> <email>matti.meikalainen@example.com</email> <website>http://fi.wikipedia.org/wiki/Matti_Meikäläinen</website> </person> </persons>
... и я пытаюсь разобрать его, используя этот код:
int main(int argc, char *argv[]) { if (argc != 2) return 1; QString filename(argv[1]); QTextStream cout(stdout); cout << "Starting... filename: " << filename << endl; QFile file(filename); bool open = file.open(QIODevice::ReadOnly | QIODevice::Text); if (!open) { cout << "Couldn't open file" << endl; return 1; } else { cout << "File opened OK" << endl; } QXmlStreamReader xml(&file); cout << "Encoding: " << xml.documentEncoding().toString() << endl; while (!xml.atEnd() && !xml.hasError()) { xml.readNext(); if (xml.isStartElement()) { cout << "element name: '" << xml.name().toString() << "'" << ", text: '" << xml.text().toString() << "'" << endl; } else if (xml.hasError()) { cout << "XML error: " << xml.errorString() << endl; } else if (xml.atEnd()) { cout << "Reached end, done" << endl; } } return 0; }
... тогда я получаю следующий результат:
C: \ xmltest \ Debug> Пример xmltest.exe .xml
Я пытаюсь понять, как QXmlStreamReader работает с приложением на C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Unicode ...Я пытаюсь понять, как QXmlStreamReader работает в приложении C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Юникода, поэтому я решил попробовать небольшой тестовый пример с более простым документом. К сожалению, я уперся в стену. Вот пример XML-файла:
<?xml version="1.0" encoding="UTF-8" ?> <persons> <person> <firstname>John</firstname> <surname>Doe</surname> <email>john.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Jane</firstname> <surname>Doe</surname> <email>jane.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Matti</firstname> <surname>Meikäläinen</surname> <email>matti.meikalainen@example.com</email> <website>http://fi.wikipedia.org/wiki/Matti_Meikäläinen</website> </person> </persons>
... и я пытаюсь разобрать его, используя этот код:
int main(int argc, char *argv[]) { if (argc != 2) return 1; QString filename(argv[1]); QTextStream cout(stdout); cout << "Starting... filename: " << filename << endl; QFile file(filename); bool open = file.open(QIODevice::ReadOnly | QIODevice::Text); if (!open) { cout << "Couldn't open file" << endl; return 1; } else { cout << "File opened OK" << endl; } QXmlStreamReader xml(&file); cout << "Encoding: " << xml.documentEncoding().toString() << endl; while (!xml.atEnd() && !xml.hasError()) { xml.readNext(); if (xml.isStartElement()) { cout << "element name: '" << xml.name().toString() << "'" << ", text: '" << xml.text().toString() << "'" << endl; } else if (xml.hasError()) { cout << "XML error: " << xml.errorString() << endl; } else if (xml.atEnd()) { cout << "Reached end, done" << endl; } } return 0; }
... тогда я получаю следующий результат:
C: \ xmltest \ Debug> Пример xmltest.exe .xml
Я пытаюсь понять, как QXmlStreamReader работает с приложением на C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Unicode ...Я пытаюсь понять, как QXmlStreamReader работает в приложении C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Юникода, поэтому я решил попробовать небольшой тестовый пример с более простым документом. К сожалению, я уперся в стену. Вот пример XML-файла:
<?xml version="1.0" encoding="UTF-8" ?> <persons> <person> <firstname>John</firstname> <surname>Doe</surname> <email>john.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Jane</firstname> <surname>Doe</surname> <email>jane.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Matti</firstname> <surname>Meikäläinen</surname> <email>matti.meikalainen@example.com</email> <website>http://fi.wikipedia.org/wiki/Matti_Meikäläinen</website> </person> </persons>
... и я пытаюсь разобрать его, используя этот код:
int main(int argc, char *argv[]) { if (argc != 2) return 1; QString filename(argv[1]); QTextStream cout(stdout); cout << "Starting... filename: " << filename << endl; QFile file(filename); bool open = file.open(QIODevice::ReadOnly | QIODevice::Text); if (!open) { cout << "Couldn't open file" << endl; return 1; } else { cout << "File opened OK" << endl; } QXmlStreamReader xml(&file); cout << "Encoding: " << xml.documentEncoding().toString() << endl; while (!xml.atEnd() && !xml.hasError()) { xml.readNext(); if (xml.isStartElement()) { cout << "element name: '" << xml.name().toString() << "'" << ", text: '" << xml.text().toString() << "'" << endl; } else if (xml.hasError()) { cout << "XML error: " << xml.errorString() << endl; } else if (xml.atEnd()) { cout << "Reached end, done" << endl; } } return 0; }
... тогда я получаю следующий результат:
C: \ xmltest \ Debug> Пример xmltest.exe .xml
Я пытаюсь понять, как QXmlStreamReader работает с приложением на C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Юникода, поэтому я решил попробовать небольшой тестовый пример с более простым документом. К сожалению, я уперся в стену. Вот пример XML-файла:<?xml version="1.0" encoding="UTF-8" ?> <persons> <person> <firstname>John</firstname> <surname>Doe</surname> <email>john.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Jane</firstname> <surname>Doe</surname> <email>jane.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Matti</firstname> <surname>Meikäläinen</surname> <email>matti.meikalainen@example.com</email> <website>http://fi.wikipedia.org/wiki/Matti_Meikäläinen</website> </person> </persons>
... и я пытаюсь разобрать его, используя этот код:
int main(int argc, char *argv[]) { if (argc != 2) return 1; QString filename(argv[1]); QTextStream cout(stdout); cout << "Starting... filename: " << filename << endl; QFile file(filename); bool open = file.open(QIODevice::ReadOnly | QIODevice::Text); if (!open) { cout << "Couldn't open file" << endl; return 1; } else { cout << "File opened OK" << endl; } QXmlStreamReader xml(&file); cout << "Encoding: " << xml.documentEncoding().toString() << endl; while (!xml.atEnd() && !xml.hasError()) { xml.readNext(); if (xml.isStartElement()) { cout << "element name: '" << xml.name().toString() << "'" << ", text: '" << xml.text().toString() << "'" << endl; } else if (xml.hasError()) { cout << "XML error: " << xml.errorString() << endl; } else if (xml.atEnd()) { cout << "Reached end, done" << endl; } } return 0; }
... тогда я получаю следующий результат:
C: \ xmltest \ Debug> Пример xmltest.exe .xml
Я пытаюсь понять, как QXmlStreamReader работает с приложением на C ++, которое я пишу. XML-файл, который я хочу проанализировать, представляет собой большой словарь с запутанной структурой и множеством символов Юникода, поэтому я решил попробовать небольшой тестовый пример с более простым документом. К сожалению, я уперся в стену. Вот пример XML-файла:<?xml version="1.0" encoding="UTF-8" ?> <persons> <person> <firstname>John</firstname> <surname>Doe</surname> <email>john.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Jane</firstname> <surname>Doe</surname> <email>jane.doe@example.com</email> <website>http://en.wikipedia.org/wiki/John_Doe</website> </person> <person> <firstname>Matti</firstname> <surname>Meikäläinen</surname> <email>matti.meikalainen@example.com</email> <website>http://fi.wikipedia.org/wiki/Matti_Meikäläinen</website> </person> </persons>
... и я пытаюсь разобрать его, используя этот код:
int main(int argc, char *argv[]) { if (argc != 2) return 1; QString filename(argv[1]); QTextStream cout(stdout); cout << "Starting... filename: " << filename << endl; QFile file(filename); bool open = file.open(QIODevice::ReadOnly | QIODevice::Text); if (!open) { cout << "Couldn't open file" << endl; return 1; } else { cout << "File opened OK" << endl; } QXmlStreamReader xml(&file); cout << "Encoding: " << xml.documentEncoding().toString() << endl; while (!xml.atEnd() && !xml.hasError()) { xml.readNext(); if (xml.isStartElement()) { cout << "element name: '" << xml.name().toString() << "'" << ", text: '" << xml.text().toString() << "'" << endl; } else if (xml.hasError()) { cout << "XML error: " << xml.errorString() << endl; } else if (xml.atEnd()) { cout << "Reached end, done" << endl; } } return 0; }
... тогда я получаю следующий результат:
C: \ xmltest \ Debug> Пример xmltest.exe .xml
Начало ... имя файла: example.xml
Файл открыт ОК
Кодировка:
Ошибка XML: обнаружен неправильно закодированный контент.Что случилось? Этот файл не может быть проще, и мне он кажется последовательным. В моем исходном файле я также получаю пустую запись для кодировки, отображаются имена записей (), но, увы, текст () также пуст. Приветствую любые предложения, лично я сильно озадачен.