使用Qt的XML库进行简单操作

时间:2010-04-27 09:24:54

标签: c++ xml qt parsing

我基本上想在现有项目中使用Qt的XML解析器。我之前只使用过一次Qt,这与Qt Designer有关,而且我在Google上找不到如何使用XML库的任何事情都没有多少运气。

我下载了一个包含一个大型列表的网页,我想解析它并将每个列表项添加到c ++列表中。我在Ubuntu论坛上找到了这个示例代码......

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

我想使用它,除了我需要知道我需要添加到项目中以确切访问它。

另一个小问题是QDomDocument似乎是用于文件(有意义)但我在字符串中有XML。 XML库的哪个部分适用于字符串的内容?

2 个答案:

答案 0 :(得分:4)

以下代码可让您快速了解如何处理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;
}

<强>更新 我相信你只需要核心Qt库以及XML库。

答案 1 :(得分:1)

您必须在.pro文件中添加QtXml并添加QDomDocument

或仅包含QDomDocument之类的

include <QtXml/QDomDocument>