下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Qt讀寫XML文件的方法詳解(含源碼+注釋)目錄一、示例XML文件內(nèi)容二、XML文件的寫入三、XML文件的讀取3.1文件讀取源碼3.2讀取結(jié)果示例總結(jié)相關(guān)文章
一、示例XML文件內(nèi)容
下方為本文所使用的xml文件的內(nèi)容
xmlversion="1.0"encoding="UTF-8"
root
childNode1attruKey="attriVal"childNode1Val/childNode1
childNode2attruKey="attriVal"
cChildNode1shuxing1="1"cChildNode1Val/cChildNode1
cChildNode2shuxing2="2"cChildNode2Val/cChildNode2
/childNode2
/root
二、XML文件的寫入
下方為XML文件寫入的源碼,其中代碼內(nèi)容按順序如下:
QDomDocument對象的創(chuàng)建和xml文件頭的添加創(chuàng)建根節(jié)點(diǎn)創(chuàng)建包含屬性和節(jié)點(diǎn)值的子節(jié)點(diǎn)創(chuàng)建較為復(fù)雜的子節(jié)點(diǎn)(包含屬性和第三級(jí)節(jié)點(diǎn))寫入文件
//創(chuàng)建QDomDocument對象
QDomDocumentxDoc;
QDomProcessingInstructioninStruction;
//寫入xml文件頭(xml版本信息和編碼信息)
inStruction=xDoc.createProcessingInstruction("xml","version=\"1.0\"encoding=\"UTF-8\"");
xDoc.appendChild(inStruction);
//創(chuàng)建根節(jié)點(diǎn)并將其添加到xDoc中
QDomElementroot=xDoc.createElement("root");
xDoc.appendChild(root);
//創(chuàng)建子節(jié)點(diǎn)1
QDomElementchildNode1=xDoc.createElement("childNode1");
//為子節(jié)點(diǎn)childNode1設(shè)置屬性及屬性值
childNode1.setAttribute("attruKey","attriVal");
//!為子節(jié)點(diǎn)childNode1添加節(jié)點(diǎn)值
//!創(chuàng)建QDomText對象并設(shè)置其值
QDomTextnodeVal=xDoc.createTextNode("childNode1Val");
//使用QDomElement對象的節(jié)點(diǎn),添加節(jié)點(diǎn)值需添加QDomText對象,否則有可能不顯示該值
childNode1.appendChild(nodeVal);
//將子節(jié)點(diǎn)1添加到根節(jié)點(diǎn)中
root.appendChild(childNode1);
//!創(chuàng)建一個(gè)多級(jí)節(jié)點(diǎn)childNode2
//創(chuàng)建多級(jí)節(jié)點(diǎn)2
QDomElementchildNode2=xDoc.createElement("childNode2");
//為多級(jí)節(jié)點(diǎn)childNode2設(shè)置屬性及屬性值
childNode2.setAttribute("attruKey","attriVal");
//創(chuàng)建多級(jí)節(jié)點(diǎn)的子節(jié)點(diǎn)1
QDomElementcChildNode1=xDoc.createElement("cChildNode1");
//設(shè)置cChildNode1的屬性和值
cChildNode1.setAttribute("shuxing1",1);
//設(shè)置cChildNode1的節(jié)點(diǎn)值
cChildNode1.appendChild(xDoc.createTextNode("cChildNode1Val"));
//將cChildNode1節(jié)點(diǎn)添加到多級(jí)節(jié)點(diǎn)中
childNode2.appendChild(cChildNode1);
//創(chuàng)建多級(jí)節(jié)點(diǎn)的子節(jié)點(diǎn)2
QDomElementcChildNode2=xDoc.createElement("cChildNode2");
//設(shè)置cChildNode2的屬性和值
cChildNode2.setAttribute("shuxing2",2);
//設(shè)置cChildNode2的節(jié)點(diǎn)值
cChildNode2.appendChild(xDoc.createTextNode("cChildNode2Val"));
//將cChildNode2節(jié)點(diǎn)添加到多級(jí)節(jié)點(diǎn)中
childNode2.appendChild(cChildNode2);
//將多級(jí)節(jié)點(diǎn)childNode2添加到根節(jié)點(diǎn)中
root.appendChild(childNode2);
//指定xml文件路徑
QFilefile("./xmlTest.xml");
//以只讀方式打開,并且會(huì)清空文件內(nèi)容
if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate))
return0;
//使用文本流寫入文件
QTextStreamoutputStream(file);
xDoc.save(outputStream,4);//縮進(jìn)四格
file.close();
三、XML文件的讀取
3.1文件讀取源碼
下方為XML文件讀取的源碼,其中代碼內(nèi)容按順序如下:
創(chuàng)建QDomDocument對象并打開文件添加其數(shù)據(jù)源獲取根節(jié)點(diǎn)讀取較為簡單的子節(jié)點(diǎn)(僅一個(gè)屬性和節(jié)點(diǎn)值)讀取較為復(fù)雜的子節(jié)點(diǎn)(包含屬性和不同的)
//創(chuàng)建QDomDocument對象
QDomDocumentxDoc;
//指定讀取的xml文件路徑
QFilefile("./xmlTest.xml");
//xml文件以只讀方式打卡
if(!file.open(QIODevice::ReadOnly))
return0;
//調(diào)用setContent函數(shù)設(shè)置數(shù)據(jù)源
if(!xDoc.setContent(file)){
file.close();
return0;
fil
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國家電網(wǎng)招聘考試題庫附參考答案詳解(精練)
- 安全生產(chǎn)報(bào)告制度及流程
- 幼兒園安全生產(chǎn)例檢制度
- 砂石場生產(chǎn)經(jīng)營管理制度
- 生產(chǎn)車間半成品區(qū)域管理制度
- 生產(chǎn)業(yè)人力資源管理制度
- 水工生產(chǎn)運(yùn)營部部門制度
- 初中英語《助動(dòng)詞》專項(xiàng)練習(xí)與答案 (100 題)
- 制冷設(shè)備生產(chǎn)許可證制度
- 清分部安全生產(chǎn)責(zé)任制度
- 棄土場規(guī)范規(guī)章制度
- 2026年水下機(jī)器人勘探報(bào)告及未來五至十年深海資源報(bào)告
- 安徽省蕪湖市鳩江區(qū)2024-2025學(xué)年高一上學(xué)期期末考試生物試卷
- 2025年對中國汽車行業(yè)深度變革的觀察與思考報(bào)告
- 雙重預(yù)防體系建設(shè)自評(píng)報(bào)告模板
- 福建省泉州市晉江市2024-2025學(xué)年八年級(jí)上學(xué)期1月期末考試英語試題(含答案無聽力音頻及原文)
- 專題五 以新發(fā)展理念引領(lǐng)高質(zhì)量發(fā)展
- GB/T 22417-2008叉車貨叉叉套和伸縮式貨叉技術(shù)性能和強(qiáng)度要求
- GB/T 20145-2006燈和燈系統(tǒng)的光生物安全性
- GB/T 1.1-2009標(biāo)準(zhǔn)化工作導(dǎo)則 第1部分:標(biāo)準(zhǔn)的結(jié)構(gòu)和編寫
- 長興中學(xué)提前招生試卷
評(píng)論
0/150
提交評(píng)論