Qt利用DOM类实现读取xml文件

目录

  • 一、项目介绍
  • 二、项目基本配置
  • 三、UI界面设计
  • 四、主程序实现
    • 4.1 node.xml
    • 4.2 pro文件
    • 4.3 main.cpp
  • 五、效果演示

    一、项目介绍 利用DOM相关类读取xml文件。
    Dom(Document Object Model,即文档对象模型)把XML文档转换成应用程序可以遍历的树形结构,这样便可以随机访问其中的节点。它的缺点是需要将整个XML文档读入内存,消耗内存较多。
    在Qt中使用QDomProcessingInstruction类来表示XML说明,元素对应QDomElement类,属性对应QDomAttr类,文本内容由QDomText类表示。所有的DOM节点,比如这里的说明、元素、属性和文本等,都使用QDomNode类来表示,然后使用对应的isProcessingInstruction()、isElement()、isAttr()和isText()等函数来判断是否是该类型的元素,如果是,那么就可以使用toProcessingInstruction()、toElement()、toAttr()和toText()等函数转换为具体的节点类型。

    二、项目基本配置 新建一个Qt案例,项目名称为“DomTest”,基类选择“QWidget”,取消创建UI界面复选框的选中状态,完成项目创建。

    三、UI界面设计 无UI界面

    四、主程序实现
    4.1 node.xml
    新建一个xml文件,内容为:
    排量:2393ml价格:43.26万元排量:1600ml价格:8.98万元排量:1600ml价格:11.25万元排量:1997ml价格:15.38万元


    4.2 pro文件
    在DomTest.pro文件中添加如下代码:
    QT+=xml


    4.3 main.cpp
    核心代码如下:
    //新建QDomDocument类对象,它代表一个XML文档QDomDocument doc; //建立指向“node.xml”文件的QFile对象QFile file("node.xml"); //以只读方式打开if(!file.open(QIODevice::ReadOnly)){qDebug()<<"无法打开"; return 0; }//将文件内容读到doc中QString errorMsg; if(!doc.setContent(&file,&errorMsg)){qDebug()<
    运行结果:
    “xml”
    “version=‘1.0’ encoding=‘UTF-8’”
    如果不希望看到引号,可以进行如下修改:
    qDebug() << qPrintable(firstNode.nodeName()); qDebug()<< qPrintable(firstNode.nodeValue());

    运行结果:
    xml
    version=‘1.0’ encoding=‘UTF-8’
    查找id节点及其对应的名称:
    //如果节点不为空while(!n.isNull()){if(n.isElement())//如果节点是元素{QDomElement e=n.toElement(); //将其转换为元素qDebug()<
    运行结果:
    “car”
    “1”
    “car”
    “2”
    “car”
    “3”
    “car”
    “4”
    输出所有子节点的内容:
    //如果节点不为空while(!n.isNull()){if(n.isElement())//如果节点是元素{QDomElement e=n.toElement(); //将其转换为元素QDomNodeList list=e.childNodes(); // 获得元素e的所有子节点的列表// 遍历该列表for(int i=0; i
    这里使用了childNodes()函数获得了元素所有子节点的列表,然后通过遍历这个列表实现了遍历其所有子元素。运行结果:
    “attrib”
    “排量:2393ml”
    “attrib”
    “价格:43.26万元”
    “attrib”
    “排量:1600ml”
    “attrib”
    “价格:8.98万元”
    “attrib”
    “排量:1600ml”
    “attrib”
    “价格:11.25万元”
    “attrib”
    “排量:1997ml”
    “attrib”
    “价格:15.38万元”

    五、效果演示 完整结果如下:
    Qt利用DOM类实现读取xml文件
    文章图片

    【Qt利用DOM类实现读取xml文件】到此这篇关于Qt利用DOM类实现读取xml文件的文章就介绍到这了,更多相关Qt读取xml文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

      推荐阅读