0

Mac OSXでQt4.7を使用していますが、XMLファイルへのパスを含むQStringがあります。そのファイルをDOMツリーにインポートし、データをメンバー変数としてクラスに格納したいと思います。これを行うための最良の方法は何ですか?

QtXmlのドキュメントを見てきましたが、QXml*クラスからクラスに変換する明確な方法が見つかりませんQDom*

4

1 に答える 1

3

DOMをトラバースするためにQXml*クラスを気にする必要はないと思います。

QDomDocumentクラスには、開いているQFileを取得できるsetContent()メソッドがあります。

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 に答える