Использование библиотеки Qt XML для простой работы - PullRequest
2 голосов
/ 27 апреля 2010

Я в основном хочу использовать парсер XML из Qt в моем существующем проекте. Я использовал Qt только один раз, и это было с Qt Designer, и мне не повезло, что я нашел в Google что-нибудь о том, как просто использовать библиотеку XML.

Я скачал веб-страницу с одним большим списком, и я хочу проанализировать его и добавить каждый элемент списка в список c ++. Я нашел этот пример кода на форумах Ubuntu ...

http://www.uluga.ubuntuforums.org/showpost.php?p=9112973&postcount=6

Я хочу использовать это, за исключением того, что мне нужно знать, что именно мне нужно добавить в проект, чтобы получить к нему доступ.

Еще один маленький вопрос - QDomDocument, кажется, для файлов (имеет смысл), но у меня есть XML в строке. Какая часть библиотеки XML работает с содержимым строки?

Ответы [ 2 ]

4 голосов
/ 27 апреля 2010

Следующий код должен дать вам быстрое представление о том, что делать с функциями Qt XML для того, что вам нужно.

#include <list>
#include <QDomDocument>
#include <QFile>

int main()
{
    QString filename("myfile.xml");
    std::list<QString> result;
    int errorLine, errorColumn;
    QString errorMsg;
    QFile modelFile(filename);
    QDomDocument document;
    if (!document.setContent(&modelFile, &errorMsg, &errorLine, &errorColumn))
    {
            QString error("Syntax error line %1, column %2:\n%3");
            error = error
                    .arg(errorLine)
                    .arg(errorColumn)
                    .arg(errorMsg);
            return false;
    }
    QDomElement rootElement = document.firstChild().toElement();
    for(QDomNode node = rootElement.firstChild();
        !node .isNull();
        node = node .nextSibling())
    {
        QDomElement element = node.toElement();
        result.push_back(element.tagName());
    }
    return 0;
}

UPDATE Я считаю, что вам нужна только базовая библиотека Qt, а также библиотека XML.

1 голос
/ 27 апреля 2010

Вы должны добавить QtXml в файл .pro и включить QDomDocument

или включают только QDomDocument как

include <QtXml/QDomDocument>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...