【RAD統合環境】 Qt 総合スレ 9 【Win/Mac/Linux】at TECH【RAD統合環境】 Qt 総合スレ 9 【Win/Mac/Linux】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト26:デフォルトの名無しさん 10/12/17 17:23:17 QDomDocument~QDomElementがめっさ使いにくい。 XMLを読み書きするの、何か他のライブラリを使ったほうがいいのかな。 27:デフォルトの名無しさん 10/12/17 17:31:53 俺もそう思ってTinyXMLとか調べてみたけど、どのライブラリでも大体似たような 感じだよ。 28:26 10/12/17 17:53:51 自己レス。 こういう関数を用意しておくと、foreachでループを回せるようになる。 (↑Qt特有? C++0x?) QList<QDomElement> getElementsByTagName(QDomElement elem, QString tagName) { QList<QDomElement> result; QDomNodeList childLst = elem.elementsByTagName(tagName); for (int i = 0; i < childLst.length(); i++) { QDomNode n = childLst.at(i); if(n.isNull()) continue; QDomElement child = n.toElement(); result.append(child); } return result; } ループ: QDomNodeList layersetLst = root.elementsByTagName("LayerSet"); QDomNode n = layersetLst.at(0); if(n.isNull()) return 1; QDomElement layerset = n.toElement(); foreach(QDomElement layer, getElementsByTagName(layerset, "Layer")) { printf(" Layer: %s\n", layer.attribute("name").toStdString().c_str()); foreach(QDomElement item, getElementsByTagName(layer, "Item")) { printf(" Item: %s\n", item.attribute("name").toStdString().c_str()); } } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch