1. 程式人生 > >Qt工作筆記-對QXmlStreamWriter進一步的認識(寫複雜的XML檔案)

Qt工作筆記-對QXmlStreamWriter進一步的認識(寫複雜的XML檔案)

本程式已經極度精簡了,

執行截圖如下:


程式碼如下:

#include <QApplication>
#include <QXmlStreamWriter>
#include <QDebug>
#include <QFile>

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

    QFile file("my.xml");
    if (!file.open(QFile::ReadWrite|QIODevice::Truncate))
    {
        qDebug() << "Error: cannot open file";
        return 1;
    }


    QXmlStreamWriter stream(&file);
    stream.setAutoFormatting(true);
    stream.writeStartDocument();
    stream.writeStartElement("最外層");
    stream.writeTextElement("結點一", "哆啦A夢");
    stream.writeTextElement("結點二", "蠟筆小新");

    //第一個
    stream.writeStartElement("內一層");
    stream.writeTextElement("姓名", "球球");
    stream.writeTextElement("照片檔案", "C:\\xxx.txt");
    stream.writeTextElement("家庭關係檔案", "C:\\xxx.data");
    stream.writeTextElement("是否有寵物","有個雞兒");
    stream.writeTextElement("月工資","13999");
    stream.writeTextElement("有幾個男朋友","1");
    stream.writeStartElement("車有幾個輪子");
    stream.writeAttribute("include", "1");
    stream.writeTextElement("前男友檔案", "C:\\xxxx.xml");
    stream.writeEndElement();
    stream.writeEndElement();

    //第二個
    stream.writeStartElement("內一層");
    stream.writeTextElement("姓名", "球球");
    stream.writeTextElement("照片檔案", "C:\\xxx.txt");
    stream.writeTextElement("家庭關係檔案", "C:\\xxx.data");
    stream.writeTextElement("是否有寵物","有個雞兒");
    stream.writeTextElement("月工資","13999");
    stream.writeTextElement("有幾個男朋友","1");
    stream.writeStartElement("車有幾個輪子");
    stream.writeAttribute("include", "1");
    stream.writeTextElement("前男友檔案", "C:\\xxxx.xml");
    stream.writeEndElement();
    stream.writeEndElement();

    stream.writeEndDocument();
    file.close();

    qDebug() << "write finished!";

    return a.exec();
}

相關推薦

Qt工作筆記-QXmlStreamWriter進一步認識複雜XML檔案

本程式已經極度精簡了,執行截圖如下:程式碼如下:#include <QApplication> #include <QXmlStreamWriter> #include <QDebug> #include <QFile> in

Qt工作筆記-QImage的進一步認識關於α通道

一般的點陣圖BMP圖,是沒有α通道的,如下圖所示: 而在寫OpenGL的程式時候,往往要得到影象的資料位的資料,不用框架,使用FILE很容易就可以獲取影象的資料, 如下圖: 但用框架將更為方便: 程式碼如下: QImage *image=ne

Qt工作筆記-程序間的通訊通過QSharedMemory

程式執行截圖如下: 分享端分享圖片: 接受端接受圖片: 分享端的邏輯: 1.建立一個QSharedMemory,並設定一個key值; 2.檢視這個記憶體是不是被使用,如果被使用就斷開; 3.呼叫create進行建立; 4.使用memcpy把要寫入的資

XPath在QT中的使用QXmlQuery讀取XML檔案

  最近一段時間和Xml檔案算是幹上了,先後用了QXmlStream、Dom、Dhtmlxtree、DhtmlXform方式讀寫Xml檔案。昨天接到任務讓用Xpath方式實現Xml讀取。經過了解在QT中有QxmlQuery類用來實現XPath,接下來就說說這個東東! 1.

web專案部署到tomcat特定路徑、埠配置server.xml檔案

前言 本文將解決以下問題: 如何將Linux下任意位置的專案(虛擬目錄)部署到tomcat? 如何將專案部署到伺服器特定埠? 如何在一個伺服器上部署多個web應用? 本例中系統:Linux v

jxl Excel 檔案並下載標頭檔案

使用servlet來下載檔案,其原理非常簡單,只要得到檔案的輸入流(或相應位元組),然後寫輸出流即可。現就其中的幾個細節問題展開: 1. MIME型別的設定: Web 瀏覽器使用 MIME 型別來識別非 HTML 文件,並決定如何顯示該文件內的資料。 例如EXCEL檔案的 MIME 型別是 "applicat

ORACLE讀CLOBoracle儲存XML檔案

把一個XML檔案寫入到ORACLE中 : SessionFactory factory=this.getHibernateTemplate().getSessionFactory(); Session

Qt/C++工作筆記-vector與QVector中erase操作的進一步認識區別與聯絡

VS程式碼如下:#include <iostream> #include <vector> using namespace std; void main(){ vector<int> intVec; for (int i = 0;

Qt工作筆記-undefined reference to `vtable for MyObject'及moc檔案進一步理解

原始碼如下: main.cpp #include <QApplication> #include <QObject> #include <QTextCodec> class MyObject:public QObject{ Q

C/C++|Qt工作筆記-4種方法判斷當前物件名或標識繼承發,typeid法,元物件className()法,Q_CLASSINFO法

回想起3個月前,剛剛參加工作也做過類似的筆記,但只有2種方法,估計剛畢業沒有什麼墨水,經過3個月時間又多了2種方法: 這些方法都可用於RTTI 第一個方法是繼承發(C++中很推薦用這個,感覺用這個結構會很清晰): 執行截圖如下: 原始碼如下: #

Qt工作筆記-進入資料夾或開啟網站QDesktopServices::openUrl的使用

QDesktopServices::openUrl這個是個神器,通過URL可以開啟本地的資料夾或某一個web網站 還是截張圖把: widget.h #ifndef WIDGET_H

Linux|Qt工作筆記-linux系統下安裝qt4.5.3版本的詳細步驟

原文地址如下: https://blog.csdn.net/AmyAndTommy/article/details/81901005     第一步:下載qt-all-opensource-src-4.5.3.tar  (地址:http://downlo

Qt工作筆記-Qt文件筆記-QPainter::drawText文字並且居中

官方解析 畫給定的text並且從指定的position。 這個函式不能處理換行符號(\n),不能將文字分割成多行,也不能分行展示。使用QPainer::drawText()的過載函式可以繪製一個多邊形

Qt文件閱讀筆記-Qt工作筆記QProcess::finished的解析與例項

目錄 官方解析 博主例子 官方解析 void QProcess::finished(int exitCode, QProcess::ExitStatus exitStatus) 這個訊號是當process完成時候才發射的。exitCode是程序退出的程式碼(

Qt工作筆記-Qt文件閱讀筆記-QXmlStreamReader::qualifiedName()如何解析帶限制符的XML

目錄 官方解析 博主例子 官方解析 QXmlStreamReader::qualifiedName() 返回StartElement或EndElement的限制名; 限制名是XML資料中元素的原

Qt工作筆記-QSort的基本使用

如下面這個程式碼: #include <QCoreApplication> #include <QVector> #include <ctime> #include

Qt工作筆記-執行緒池作用之一:限制系統中執行執行緒的數量

一、執行緒池的作用: 執行緒池作用就是限制系統中執行執行緒的數量。 根據系統的環境情況,可以自動或手動設定執行緒數量,達到執行的最佳效果;少了浪費了系統資源,多了造成系統擁擠效率不高。用執行緒池控制執行

Qt工作筆記-QVector與QMap查詢效率實戰

因為專案使用QVector,太慢了,聽說QMap比QVector查詢時快,所以寫一個小程式試試;從30000個數據中找5000個程式執行截圖如下:QVectorQMap一樣的資料,找一樣的數程式碼如下圖:widget.h#ifndef WIDGET_H #define WID

有效性的認識卓有成效的管理者

1、有效的管理者知道他們的時間用在什麼地方,他們能夠控制的時間非常有限,他們會有系統的工作,來善用者優先的時間 2、有效的管理者重視對外界的貢獻,他們並非為工作而工作,而是為成果而工作 3、有效的管理者會善於利用長處,包括自己的長處,上司的長處,同事的長處,下屬的長處 4、

Qt工作筆記-QLineEdit中使用setValidator裡面的坑

這裡有個坑,不管是這麼寫 QDoubleValidator *doubleValidator=new QDoubleValidator(); doubleValidator->set