Qt Dom方式写xml,以及保存到xml文件中
#include<QString>#include<QDebug>#include<stdio.h>#include<stdlib.h>#include<QDomDocument>#include<QtXml>//XMLDOM的方式intmain(intargc,char*argv[]){QByteArrayarray;QDomDocumentdoc;QDomProcessingInstructioninstruction;QDomTexttext;instruction=doc.createProcessingInstruction("xml","version=\"1.0\"encoding=\"UTF-8\"");doc.appendChild(instruction);//doc开头加入instructionQDomElementroot=doc.createElement("root");//创建root节点QDomElementcommon=doc.createElement("common");//创建节点commonQDomElementmeters=doc.createElement("meters");//创建节点metersQDomElementmeter=doc.createElement("meter");QDomElementfunction=doc.createElement("function");meters.setAttribute("total","0");//设置属性名字和值meter.setAttribute("id","0001");meter.setAttribute("name","0001");function.setAttribute("id","01");//function.setAttribute("error","");meters.appendChild(meter);common.appendChild(meters);//将meters节点添加到common节点中doc.appendChild(root);//将root节点添加到docroot.appendChild(common);//将common节点添加到root节点中meter.appendChild(function);meters.setAttribute("total","12");array=doc.toByteArray();printf("%s",array.data());//将xml保存到文件中QFilefile("./why.xml");file.open(QIODevice::WriteOnly|QIODevice::Truncate|QIODevice::Text);QTextStreamout(&file);out.setCodec("UTF-8");doc.save(out,4,QDomNode::EncodingFromTextStream);file.close();return0;}
输出的xml内容为:
<?xmlversion="1.0"encoding="UTF-8"?><root><common><meterstotal="12"><meterid="0001"name="0001"><functionerror=""id="01"/></meter></meters></common></root>
DOM方式,在内存中形成一个树状结构,在内存中可以实时的改变xml中的内容。但是耗内存较大,在xml内容较少时可以考虑使用。
而SAX,
QXmlStreamWriter的方式是顺序的,只能按照顺序去添加xml内容,无法回头在改动xml的内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。