使用Qt创建XML文档及XML文档的增删改
生活随笔
收集整理的這篇文章主要介紹了
使用Qt创建XML文档及XML文档的增删改
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄名字
- 使用Qt創(chuàng)建XML文檔及XML文檔的增刪改
- XML文檔的操作 :QXml + QFile+QTextStream
- 創(chuàng)建XML的一般步驟:
- XML 文檔的操作(添加、查找、更新、刪除)
- 添加的一般步驟
- 示例代碼:
- 查找、更新、刪除的一般操作
- 界面效果:
- 總結(jié):
使用Qt創(chuàng)建XML文檔及XML文檔的增刪改
XML文檔的操作 :QXml + QFile+QTextStream
創(chuàng)建XML的一般步驟:
1、添加處理指令及XML說明
2、添加元素
3、寫入文件
示例:
QDomDocument doc;// 添加處理指令即XML說明 QDomProcessingInstruction instruction; instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\""); doc.appendChild(instruction);// 添加根元素 QDomElement root = doc.createElement(QString("書庫")); doc.appendChild(root);// 添加第一個圖書元素及其子元素 QDomElement book = doc.createElement(QString("圖書")); QDomAttr id = doc.createAttribute(QString("編號")); QDomElement title = doc.createElement(QString("書名")); QDomElement author = doc.createElement(QString("作者")); QDomText text;id.setValue(QString("1")); book.setAttributeNode(id); text = doc.createTextNode(QString("Qt")); title.appendChild(text); text = doc.createTextNode(QString("shiming")); author.appendChild(text); book.appendChild(title); book.appendChild(author); root.appendChild(book);// 添加第二個圖書元素及其子元素 book = doc.createElement(QString("圖書")); id = doc.createAttribute(QString("編號")); title = doc.createElement(QString("書名")); author = doc.createElement(QString("作者"));id.setValue(QString("2")); book.setAttributeNode(id); text = doc.createTextNode(QString("Linux")); title.appendChild(text); text = doc.createTextNode(QString("yafei")); author.appendChild(text); book.appendChild(title); book.appendChild(author); root.appendChild(book);QFile file("my.xml"); if(!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) return ; QTextStream out(&file); // 將文檔保存到文件,4為子元素縮進字符數(shù) doc.save(out, 4); file.close();細節(jié):
- 1、QDOMDocument類在內(nèi)存中生成一顆DOM樹。
- 2、createElement()添加元素 createAttribute()添加屬性 createTextNode()添加文本
通過這些個函數(shù)來生成各種節(jié)點 - 3、使用appendChild()將各個節(jié)點依次追加
XML 文檔的操作(添加、查找、更新、刪除)
添加的一般步驟
1、打開文件
2、QDomDocument 類來創(chuàng)建DOM樹
3、關(guān)閉文件
4、找到最后一個孩子節(jié)點的元素
5、新增元素,在最后一個孩子節(jié)點后追加一個新元素
示例代碼:
QFile file("my.xml");if (!file.open(QIODevice::ReadOnly)) return;QDomDocument doc;if (!doc.setContent(&file)){file.close();return;}file.close();QDomElement root = doc.documentElement();QDomElement book = doc.createElement(QString("圖書"));QDomAttr id = doc.createAttribute(QString("編號"));QDomElement title = doc.createElement(QString("書名"));QDomElement author = doc.createElement(QString("作者"));QDomText text;// 我們獲得了最后一個孩子結(jié)點的編號,然后加1,便是新的編號QString num = root.lastChild().toElement().attribute(QString("編號"));int count = num.toInt() +1;id.setValue(QString::number(count));book.setAttributeNode(id);text = doc.createTextNode(ui->lineEdit_2->text());title.appendChild(text);text = doc.createTextNode(ui->lineEdit_3->text());author.appendChild(text);book.appendChild(title);book.appendChild(author);root.appendChild(book);if(!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) return ;QTextStream out(&file);doc.save(out, 4);file.close();查找、更新、刪除的一般操作
1、elementByTagName()來獲取所有圖書元素的列表
2、使用指定的id編號來獲取要操作的圖書元素
3、刪除:removeChild()函數(shù)來刪除該元素并保存到文件。
4、更新:setNodeValue()來為其設(shè)置新的值并保存到文件
3、查找:將該元素的內(nèi)容顯示出來。
界面效果:
總結(jié):
1、本篇的參考來源《Qt Creator 快速入門》
2、XML的操作,理解上并不復雜,操作上基本上按照流程來執(zhí)行,但熟練掌握還需要勤加練習才好
總結(jié)
以上是生活随笔為你收集整理的使用Qt创建XML文档及XML文档的增删改的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt 读取XML文档的简单示例
- 下一篇: Qt Dock Widgets 官方示例