1. 程式人生 > >QT XML檔案的讀寫

QT XML檔案的讀寫

我決定在這寫下自己每天獲得的知識,有空可以當作翻翻的依據。內容儘管很雜。

SVG是一種用XML定義的語言,用來描述二維向量及向量/柵格圖形。

enum QIODevice::OpenModeFlag
flags QIODevice::OpenMode

This enum is used withopen() to describe the mode in which a device is opened. It is also returned byopenMode().

Constant Value Description
QIODevice::NotOpen 0x0000 The device is not open.
QIODevice::ReadOnly 0x0001 The device is open for reading.
QIODevice::WriteOnly 0x0002 The device is open for writing.
QIODevice::ReadWrite ReadOnly | WriteOnly The device is open for reading and writing.
QIODevice::Append 0x0004 The device is opened in append mode, so that all data is written to the end of the file.
QIODevice::Truncate 0x0008 If possible, the device is truncated before it is opened. All earlier contents of the device are lost.
QIODevice::Text 0x0010 When reading, the end-of-line terminators are translated to '\n'. When writing, the end-of-line terminators are translated to the local encoding, for example '\r\n' for Win32.
QIODevice::Unbuffered 0x0020 Any buffer in the device is bypassed.
QIODevice::Truncate  ;f覆蓋了原來的內容;

truncated

[英] [ˈtrʌŋkeitid] [美] [ˈtrʌŋˌketɪd] 生詞本

adj.

v.

bypassed

  • v. 繞道,忽視(bypass的過去分詞)

原始碼:寫xml檔案

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <iostream>
#include <QTextStream>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QFile *file=new QFile("/home/qust/qt/XML/1.xml");
    if(!file->open(QIODevice::WriteOnly|QIODevice::ReadOnly))
    {
        return ;
    }
    QDomDocument doc;
    QDomText text;
    QDomElement element;
    QDomProcessingInstruction instruction;
    instruction=doc.createProcessingInstruction("xml","version=\'1.0\'");
    doc.appendChild(instruction);
    QDomElement root=doc.createElement("kdevelop");
    doc.appendChild(root);
    QDomElement general=doc.createElement("general");
    root.appendChild(general);

    element=doc.createElement("author");
    text=doc.createTextNode("zeki");

    element.appendChild(text);
    general.appendChild(element);

    element=doc.createElement("email");
    text=doc.createTextNode("[email protected]");
    element.appendChild(text);
    general.appendChild(element);

    QTextStream out(file);
    doc.save(out,4);
    file->close();

}

MainWindow::~MainWindow()
{
    delete ui;
}

執行後:

讀xml原始碼:


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtXml>
#include <QDebug>
#include <QFile>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QDomDocument dom;
    QFile *file=new QFile("/home/qust/qt/XML/1.xml");
    if(file->open(QIODevice::ReadOnly))
    {
        dom.setContent(file);

    }

    QDomNodeList email=dom.elementsByTagName("email");
    qDebug()<<email.count();
    qDebug()<<email.item(0).toElement().text();
    // QDomNodeList general=kdevelop.item(0).toElement().childNodes();
    //qDebug()<<general.item(0).toElement().text();
}

MainWindow::~MainWindow()
{
    delete ui;
}


相關推薦

Qt-二進位制檔案-QDataStream

轉自:http://blog.51cto.com/devbean/293892今天開始進入 Qt 的另一個部分:檔案讀寫,也就是 IO。檔案讀寫在很多應用程式中都是需要的。Qt 通過 QIODevice 提供了IO的抽象,這種裝置(device)具有讀寫位元組塊的能力。常用的

XML檔案編碼不是UTF-8的問題

FileWriter和FileReader在寫、讀檔案時,使用系統當前預設的編碼方式。 在中文win下encoding基本是GB2312,在英文win下基本是ISO-8859-1。所以要建立一個UTF-8的檔案,使用FileWriter是不行的。 FileWriter和Fi

QT XML檔案

我決定在這寫下自己每天獲得的知識,有空可以當作翻翻的依據。內容儘管很雜。 SVG是一種用XML定義的語言,用來描述二維向量及向量/柵格圖形。 enum QIODevice::OpenModeFlag flags QIODevice::OpenMode This enu

ASP.NET 系統檔案操作和XML配置

這裡將工作中用到的兩個工具分享一下:(1)、系統檔案操作工具(2)、XML讀寫配置檔案工具。 目錄 檔案操作工具 XML配置檔案讀寫 XML配置檔案讀取示例 檔案操作工具 using System; using System.Collections.Generic;

opencv學習(十七)之XML和YAML檔案操作

可能大部分人到現在接觸的XML和YAML檔案很少,等以後訓練人臉模型進行人臉識別的時候用的就多了。現在先了解一下這兩種檔案型別。 XML:Extensible Markup Language,可擴充套件標記語言,標準通用語言的子集,是一種用於標記電子檔案使其具

Qt檔案操作 (文章收錄)

操作檔案是各種語言和類庫的基本功能. Qt是如何讀寫檔案的呢? 在Qt的文件有就有答案. 在QFile的文件中指出了幾種操作檔案的方法, 其中QTextStream是比較好理解和使用的: 讀取操作: The next example uses QTextStream to read a text f

Qt---多種方式二進位制檔案

將文字資料寫入二進位制檔案,然後從二進位制檔案中讀出,還原為文字資料 #include "mainwindow.h" #include <QApplication> #include &l

Qt】QSettings登錄檔、配置檔案【轉】

簡述 一般情況下,我們在開發軟體過程中,都會快取一些資訊到本地,可以使用輕量級資料庫sqlite,也可以操作登錄檔、讀寫配置檔案。 關於QSettings的使用前面已經介紹過了,比較詳細,見“更多參考”,下面介紹下QSettings常用功能-讀寫登錄檔、配置檔案。 簡述 優點 讀

Qt檔案操作

if(file.open(QIODevice::WriteOnly) file.write("hello Qt"); file.close(); 以讀的方式開啟 if(file.open(QIODevice::ReadOnly)) {     QString str = f

Qt 檔案操作

 //文列出Qt讀寫檔案常用方式,還有對檔案的一些簡單操作 讀檔案 QString fileName = "D:\Lib\1.txt";QString str;QFile file(fileNam

Qt操作多個Sqlite資料庫和檔案

摘要: Qt自帶了sqlite的驅動,也有各種檔案的讀寫操作,用起來很是方便,這裡僅僅是做了一個簡單的封裝,方便多個數據庫和多個檔案的操作。 用到這塊的時候網上搜了很多參考資料,感謝大家的無私分享,這裡把搜後整理的結果分享給大家,對無私分享的廣

Qt 學習 之 二進位制檔案

在上一章中,我們介紹了有關QFile和QFileInfo兩個類的使用。我們提到,QIODevice提供了read()、readLine()等基本的操作。同時,Qt 還提供了更高一級的操作:用於二進位制的流QDataStream和用於文字流的QTextStream

Qt中快速Excel方法封裝

import mon works body oid ati ebo set 區域 #include "RwExcel.h"/*快速讀寫的機制是實現獲取有效區域只調用一次dynamicCall("Value");或setProperty("Value", var);即可, *

XML操作封裝 - 實現預格式的XML

exception cto nbsp 分享 技術分享 string content compare 配置 XML用於作配置文件。 該封裝XML需滿足以下格式 <Configs>   <Config Name="XXX">   </Config

PGM格式影象檔案

        private int mWidth;         private int mLength;         private int mColor;

Java 之 檔案及效能比較總結

Java 之 檔案讀寫及效能比較總結 2014年05月12日 17:56:49 閱讀數:21765  幹Java這麼久,一直在做WEB相關的專案,一些基礎類差不多都已經忘記。經常想得撿起,但總是因為一些原因,不能如願。 其實不是沒有時間,只是有些時候疲於總結,今得空,下定決心

json.dump json.load與檔案操作

一.寫檔案 info={"name":"李小龍",'age':66,'love':"cat"} fp=open('testdict1.txt','w+',encoding='utf-8') fp.write(info) ls=list('1234567890') # print(ls) f

C檔案函式

fopen() 函式原型 函式原型:FILE * fopen(const char * path, const char * mode); FILE *fp ; fp = fopen("D:\\a.txt","r"); \\是一種轉義字元,他表示一個\,就像\n表示回車一樣,即

NOIP複賽複習(三)檔案與數論模板

檔案讀入讀出 假設題目名為“add”,那麼資料夾名為“add”,c++程式名為“add.cpp”,讀入檔名為“add.in”,輸出檔名為“add.out”。四個的拼寫均不可有誤,包括大小寫差異。千萬不要除錯後就忘記修改檔案讀入讀出了。  #include<cstdio&

C/C++檔案操作 —— windowsAPI

轉自:http://blog.sina.com.cn/s/blog_6e7fed390100z0j1.html 基於C的檔案操作 在ANSI C中,對檔案的操作分為兩種方式,即流式檔案操作和I/O檔案操作,下面就分別介紹之。 一、流式檔案操作 這種方式的檔案操作有一個重要的結構