Qt xmlWriter/xmlReader
Я хочу написать и прочитать XML-файл, используя Qt. Есть ли простой пример кода, который генерирует XML-файл динамически?
Я нашел несколько классов Qt xml, но кто-нибудь знает, к чему они привыкли, и есть ли простой пример, который использует эти классы?
QtXml Module (http://doc.qt.nokia.com/latest/qtxml.html)
QXmlStreamReader (http://doc.qt.nokia.com/4.7/qxmlstreamreader.html)
QXmlStreamWriter (http://doc.qt.nokia.com/4.7/qxmlstreamreader.html)
Я написал управляемый код C++, но моя проблема в том, что этот код (с использованием /clr обязательно) не поддерживает IntelliSense в Visual Studio 2010. Теперь я пытаюсь найти альтернативу. Если кто-то знает что-то, что имеет почти те же функции, только с использованием неуправляемого кода, было бы идеально!
Более того, я нашел это, но на самом деле не знаю, как его использовать: QString to XML в QT
2 ответа
Спасибо за Ваш ответ!
Я нашел эти ссылки для генерации и чтения XML-файлов с использованием QT от Nokia:
Написание файлов XML: http://developer.nokia.com/community/wiki/Generate_XML_programatically_in_Qt
Чтение файлов XML: http://www.developer.nokia.com/Community/Wiki/Using_QXmlStreamReader_to_parse_XML_in_Qt
Это классы QT, используемые при записи и чтении файлов XML:
Если вы намереваетесь анализировать небольшие XML-файлы, самый простой способ - использовать класс QDomDocument, см. пример ниже, взятый из "Программирование на C++ с использованием Qt4, второе издание".
QFile file(filename);
QString errorStr;
int errorLine;
int errorColumn;
QDomDocument doc;
if (!doc.setContent(&file, false, &errorStr, &errorLine,
&errorColumn)) {
std::cerr << "Error: Parse error at line " << errorLine << ", "
<< "column " << errorColumn << ": "
<< qPrintable(errorStr) << std::endl;
return false;
}
QDomElement root = doc.documentElement();
if (root.tagName() != "bookindex") {
std::cerr << "Error: Not a bookindex file" << std::endl;
return false;
}
Однако весь xml хранится в памяти, поэтому будьте осторожны с большими xml-файлами.