• 大小: 21KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签: XML  Qt  

资源简介

源代码来自于creator快速入门例子,对其进行简单的修改和注释

资源截图

代码片段和文件信息

#include 
#include l>

//xml中的xml说明对应QDomProcessingInstruction

//xml中的元素对应QDomElement类

//xml中的属性对应QDomArr类

//xml中的文本内容对应QDomText类

//Qt中,所有的Dom节点,比如说明,元素,属性和文本等,都使用QDomNode来表示

//文档本身用 QDomDocument 类表示

int main(int argc char *argv[])
{
    QCoreApplication a(argc argv);

    // 新建QDomDocument类对象,它代表一个xml文档
    QDomDocument doc;

    QFile file(“../myDOM1/my.xml“);
    if (!file.open(QIODevice::ReadOnly)) return 0;

    // 将文件内容读到doc中
    if (!doc.setContent(&file)) { //setContent()函数设置整个文档内容,将xml文档内容解析为一个DOM树
        file.close();
        return 0;
    }
    // 关闭文件
    file.close();

    // 获得doc的第一个结点,即xml说明
    QDomNode firstNode = doc.firstChild();  //若换为lastChild() 指的是根元素
    // 输出xml说明nodeName()为“xml”nodeValue()为版本和编码信息
    qDebug() << qPrintable(firstNode.nodeName())
             << qPrintable(firstNode.nodeValue());

    // 返回根元素
    QDomElement docElem = doc.documentElement();
    //根元素标记
    qDebug() <    // 返回根节点的第一个子结点
    QDomNode n = docElem.firstChild();  //lastChild()获取最后一个节点  输出的是book03
    // 如果结点不为空,则转到下一个节点
    while(!n.isNull())  //true 为空    false不为空
    {
        // 如果结点是元素
        if (n.isElement())
        {
            // 将其转换为元素
            QDomElement e = n.toElement();
            // 返回元素标记和id属性值
            qDebug() << qPrintable(e.tagName())
                     << qPrintable(e.attribute(“id“)); //属性值
            // 获得元素e的所有子结点的列表
            QDomNodeList list = e.childNodes();
            // 遍历该列表
            for(int i=0; i            {
                QDomNode node = list.at(i);
                //判断子节点是元素
                if(node.isElement())
                    //元素标记和文本内容
                    qDebug() << “   “<< qPrintable(node.toElement().tagName())
                             <            }
        }
        // 转到下一个兄弟结点
        n = n.nextSibling();  //使用previousSibling访问前一个节点

    }

    return a.exec();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2656  2015-12-07 16:58  xml\myDOM1\main.cpp

     文件        350  2015-12-07 10:39  xml\myDOM1\my.xml

     文件        321  2011-10-16 17:11  xml\myDOM1\myDOM1.pro

     文件      18251  2015-12-07 16:58  xml\myDOM1\myDOM1.pro.user

     文件        281  2015-12-07 10:48  xml\myDOM2\main.cpp

     文件       8730  2015-12-07 13:35  xml\myDOM2\mainwindow.cpp

     文件        566  2011-10-16 21:11  xml\myDOM2\mainwindow.h

     文件       4335  2011-10-16 20:12  xml\myDOM2\mainwindow.ui

     文件        390  2013-08-18 09:35  xml\myDOM2\myDOM2.pro

     文件      18255  2015-12-07 16:58  xml\myDOM2\myDOM2.pro.user

     文件        200  2011-10-17 21:27  xml\mySAX\main.cpp

     文件        252  2011-10-16 17:20  xml\mySAX\my.xml

     文件       1850  2015-12-07 14:08  xml\mySAX\mysax.cpp

     文件       1058  2015-12-07 17:14  xml\mySAX\mysax.h

     文件        104  2015-12-07 13:52  xml\mySAX\mySAX.pro

     文件      18249  2015-12-07 17:14  xml\mySAX\mySAX.pro.user

     文件       1799  2015-12-07 17:29  xml\myxmlStreamReader\main.cpp

     文件        265  2011-10-10 16:03  xml\myxmlStreamReader\my.xml

     文件        326  2011-10-19 21:20  xml\myxmlStreamReader\myxmlStream.pro

     文件      18284  2015-12-07 17:29  xml\myxmlStreamReader\myxmlStream.pro.user

     文件       1392  2015-12-07 14:52  xml\myxmlStreamWriter\main.cpp

     文件        239  2015-12-07 14:52  xml\myxmlStreamWriter\my2.xml

     文件        326  2011-10-19 21:20  xml\myxmlStreamWriter\myxmlStream.pro

     文件      18284  2015-12-07 15:41  xml\myxmlStreamWriter\myxmlStream.pro.user

     目录          0  2015-12-09 09:13  xml\myDOM1

     目录          0  2015-12-09 09:14  xml\myDOM2

     目录          0  2015-12-09 09:14  xml\mySAX

     目录          0  2015-12-09 09:14  xml\myxmlStreamReader

     目录          0  2015-12-09 09:16  xml\myxmlStreamWriter

     目录          0  2015-12-09 09:18  xml

............此处省略3个文件信息

评论

共有 条评论