0

我在 Mac OS X 上使用 Qt 4.7,并且我有一个包含 XML 文件路径的 QString。我想将该文件导入 DOM 树并将数据作为成员变量存储到类中。做这个的最好方式是什么?

我一直在查看QtXml文档,但找不到从QXml*类转换为类的清晰方法QDom*

4

1 回答 1

3

我认为您无需费心使用 QXml* 类来遍历 DOM。

QDomDocument 类有一个 setContent() 方法,可以获取一个打开的 QFile。

QDomDocument 文档的“详细信息”部分中有一个代码示例。

QDomDocument doc("mydocument");
QFile file("mydocument.xml");
if (!file.open(QIODevice::ReadOnly))
    return;
if (!doc.setContent(&file)) {
    file.close();
    return;
}
file.close();

// print out the element names of all elements that are direct children
// of the outermost element.
QDomElement docElem = doc.documentElement();

QDomNode n = docElem.firstChild();
while(!n.isNull()) {
    QDomElement e = n.toElement(); // try to convert the node to an element.
    if(!e.isNull()) {
        cout << qPrintable(e.tagName()) << endl; // the node really is an element.
    }
    n = n.nextSibling();
}
于 2011-04-20T04:00:36.817 回答