QT DOM方式读取xml文件(QDomElement)

来源:互联网 发布:陈文光 清华大学 知乎 编辑:程序博客网 时间:2024/06/01 03:57

    xml文件格式:


<?xml version="1.0"?><tree id="0"><item id="1"  open="1"  text="一级" im0="leaf.gif" im1="folderOpen.gif" im2="folderClosed.gif" ><item id="5"  select="1" text="二级" im0="leaf.gif" im1="folderOpen.gif" im2="folderClosed.gif" ></item><item id="6"  text="空泡" im0="leaf.gif" im1="folderOpen.gif" im2="folderClosed.gif" ></item></item></tree>


  头文件:


#include <QFile> #include <QString>#include <QDomDocument>#include <QtXml>#include <QXmlStreamReader>


示例代码:

//DOM方式查找在XML文件二级目录中是否有sItemName节点,有返回1,无返回0,错误返回-1;//sXmlFilePath:xml完整路径打的文件名(c:\doc\ss.xml)int CAppletGenerator::searchTaskMenuTreeItem(QString sXmlFilePath,QString sItemName)) {QFile file(sXmlFilePath);if (!file.open(QFile::ReadOnly | QFile::Text)) {return -1;}QDomDocument domDocument;if (!domDocument.setContent(&file, true)) {file.close();return -1;}QDomElement tree      = domDocument.documentElement();QDomElement firstItem = tree.firstChildElement();//把全部二级item存放在list中QDomNodeList secondItemlist = firstItem.childNodes();for(int i = 0;i < secondItemlist.count();i++) {QDomNode node    = secondItemlist.at(i);QString textname = node.toElement().attribute("text");if (textname == sItemName) {return 1;}}//end forreturn 0;}


原创粉丝点击