QT5自学教程71——Reading xml

QT5自学教程(71)——Reading xml

在上一节我们介绍了将xml内容写入到文件中,这一节我们将介绍从xml文件中读取xml内容并将其显示在控制台界面之上。

[1]新建一个Qt Console Application项目

[2]在项目中添加必要程序

main.cpp程序

//2014/9/16 wayne HDU
//问题描述:读取xml文件中内容并将其显示在控制台界面之上
#include <QCoreApplication>
#include <QDomDocument>
#include <QDebug>
#include <QFile>
//声明函数
void ListElement(QDomElement root,QString tagName,QString attribute);
int main(int argc,char *argv[])
{
    QCoreApplication a(argc,argv);

    QDomDocument doc;

    //打开文件用于读取xml
    QFile file("F:/test.xml");
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug() << "Failed to open files";
        return -1;
    }
    else
    {
        if(!doc.setContent(&file))
        {
            qDebug() << "Failed to load document";
            return -1;
        }
        file.close();
    }
    //获得根元素
    QDomElement root = doc.firstChildElement();

    //读取指定节点下的元素
    ListElement(root,"Book","Name");

    qDebug() << "\r\nMore Advanced \r\n";
    //输出更多的信息
    //QDomNodeList类是包含QDomNode对象的列表
    //elementsByTagName(const QString& tagname) 返回一个QDomNodeList,其中包含文档中所有包含名字tagname的元素
    QDomNodeList books = root.elementsByTagName("Book");
    //输出所有QDomNodeList对象中的元素
    for(int i = 0; i < books.count(); ++i)
    {
        QDomNode bookNode = books.at(i);
        //判断对象是否是元素,若是则转换成元素对象并输出内容
        if(bookNode.isElement())
        {
            QDomElement book = bookNode.toElement();
            qDebug() << "Chapter in " << book.attribute("Name");
            ListElement(book,"Chapter","Name");
        }
    }

    qDebug() << "Finished";
    return a.exec();
}
//定义读取函数
void ListElement(QDomElement root,QString attribute)
{
    QDomNodeList items = root.elementsByTagName(tagName);
    qDebug() << "Total items = " << items.count();
    for(int i = 0; i < items.count(); ++i)
    {
        QDomNode itemNode = items.at(i);
        if(itemNode.isElement())
        {
            QDomElement itemElem = itemNode.toElement();
            qDebug() << itemElem.attribute(attribute);

        }
    }
}

[3]输出结果


小结

在这一节介绍了如何从一个xml文件中读取xml。PS:实验室的铁皮柜终于在业余人士(使用螺丝刀向反方向旋转锁芯)已经专业人士(大型工具直接处理)之下打开了,然后还换上了新的锁。但愿老板不知道铁皮柜发生了什么事情o(╯□╰)o。。。

2014/9/16

Wayne HDU

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇