加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Qt 读写 xml

发布时间:2020-12-16 00:36:14 所属栏目:百科 来源:网络整理
导读:test.xml Xml代码 650) this.width=650;" class="star" src="http://img.jb51.cc/vcimg/static/loading.png" alt="收藏代码" style="border:0px;" src="http://xiangjie88.iteye.com/images/icon_star.png"> ? xml version = "1.0" encoding = "UTF-8" ? Sta

test.xml

Xml代码

收藏代码

  1. <?xmlversion="1.0"encoding="UTF-8"?>

  2. <Startaniminal="cat">

  3. <book>book1</book>

  4. </Start>



simpleWriter.cpp

C++代码

收藏代码

#include<QXmlStreamWriter>
#include<QFile>
#include<iostream>
using namespace std;
void writeXML(){
    QFile file("test.xml");
    if(not file.open(QIODevice::ReadWrite))
        return;
    QXmlStreamWriter writer(&file);
    writer.setAutoFormatting(true);
    writer.writeStartDocument();
    writer.writeStartElement("Start");
    writer.writeAttribute("animinal","cat");
    writer.writeTextElement("book","book1");
    writer.writeEndElement();//Start
    writer.writeEndDocument();
    file.close();
}
int main(){
    writeXML();
}



dom读写
dom.xml

Xml代码

收藏代码

  1. <Startaniminal="cat">

  2. <book>book1</book>

  3. </Start>


dom.cpp

C++代码

收藏代码

#include<QDomDocument>
#include<QDomElement>
#include<QFile>
#include<QTextStream>
#include<iostream>
using namespace std;
void writeDom(){
    QFile file("dom.xml");
    if(not file.open(QIODevice::ReadWrite))
        return;
    QDomDocument doc;
    QDomElement startElem = doc.createElement("Start");
    doc.appendChild(startElem);
    startElem.setAttribute("animinal","cat");
    QDomElement bookElem = doc.createElement("book");
    bookElem.appendChild(doc.createTextNode("book1"));
    startElem.appendChild(bookElem);
    QTextStream out(&file);
    doc.save(out,3);
    file.close();
}
void readDom(){
    QFile file("dom.xml");
    if(not file.open(QIODevice::ReadWrite))
        return;
    QDomDocument doc;
    doc.setContent(&file);
    QDomElement startElem = doc.documentElement();
    cout << "animainal:";
    cout << startElem.attribute("animinal").toStdString() << endl;
    cout << "book:";
    cout << startElem.firstChildElement("book").text().toStdString() << endl;
    file.close();
}
int main()
{
    writeDom();
    readDom();
}



sax读写,就不贴代码了,一般情况下,3,5000行的xml用dom不影响效率

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读