• 6103阅读
  • 5回复

[提问]Qt读xml文件属性//用什么函数? [复制链接]

上一主题 下一主题
离线mirro
 
只看楼主 正序阅读 楼主  发表于: 2012-04-24
<?xml version="1.0" encoding="GB2312"?>
<rank_insignia>
<record entitlement="high ranking" type="general">//怎么读出这块?
<name>Mirro</name>
<age>45</age>
<assigned_forces>South Sea Fleet</assigned_forces>
<military_region>GuangD military area commands</military_region>
</record>
</rank_insignia>
//把函数放在下面代码那个地方?谢谢
  1. int DomRead()
  2. {
  3. QDomDocument docD;
  4. QFile file("rank_insignia.xml");
  5. int success=file.open(QIODevice::ReadOnly);
  6. if(!success) return -1;
  7. if(!docD.setContent(&file))
  8. {
  9. file.close();
  10. return -1;
  11. }
  12. QDomElement docE = docD.documentElement();
  13. QDomNode docN = docE.firstChild();
  14. while(!docN.isNull())
  15. {
  16. QDomElement docE2 = docN.toElement();
  17. if(!docE2.isNull())
  18. {
  19. qDebug()<<docE2.tagName()<<":"<<docE2.text();
  20. }
  21. docN=docN.nextSibling();
  22. }
  23. file.close();
  24. if(success) return 1;
  25. }



离线mirro
只看该作者 5楼 发表于: 2012-04-24
回 3楼(xuweistudy) 的帖子
大哥哥 怎么加到我的代码里 //我看看啊 ,伪代码不会加呀
离线mirro
只看该作者 4楼 发表于: 2012-04-24
回 2楼(翠屏阿姨) 的帖子
大哥 怎么加到我的代码里 //我看看啊 ,伪代码不会加呀
离线xuweistudy
只看该作者 3楼 发表于: 2012-04-24
QDomDocument doc("TextSymbols");
        QFile file("xxx.xml");
        if (!file.open(QIODevice::ReadOnly))
        {
            return;
        }
        if (!doc.setContent(&file))
        {
            file.close();
            return;
        }
        file.close();
        QDomNodeList nodeList = doc.elementsByTagName("rank_insignia");
        QDomNodeList nodeList2;
        for (int i = 0 ; i < nodeList.size(); ++i)
        {
            nodeList2 = nodeList.at(i).childNodes();
                nodeList2.at(0).toElement().attribute("entitlement");//你要的东西
        }
离线翠屏阿姨
只看该作者 2楼 发表于: 2012-04-24
<record entitlement="high ranking" type="general">//怎么读出这块?
这个应该是record的属性,我猜想应该用QDomElement::attribute(“entitlement”)读出entitlement值,用QDomElement::attribute(“type”)读出type值,具体在程序中用法,还需自己体会
目前还是Qt菜鸟
离线passion_wu
只看该作者 1楼 发表于: 2012-04-24
QString QDomElement::attribute ( const QString & name, const QString & defValue = QString() ) const

快速回复
限100 字节
 
上一个 下一个