qt xml组包_[原创]Qt下XML文档的读、写(DOM方式)

QDomDocument dom;

QFile*file=newQFile("books.xml");if(file->open(QIODevice::ReadOnly))

{

dom.setContent(file);//此处需做错误判断}

file->close();//以下代码为解析XML文件中的内容QDomNodeList books=dom.elementsByTagName("book");for(inti=0; i

QDomNode book=books.item(i);if(book.toElement().attribute("ISBN")==isbn) {//查找ISBN匹配的属性,isbn由用户指定QDomNodeList attribs=book.toElement().childNodes();

QDomNode node;

QString attribNumber,attribContent;for(intj=0; j

node=attribs.item(j);

attribNumber=node.toElement().attribute("number");

            attribContent=node.toElement().text();// 在此可添加代码对attribNumber,attribContent作出处理了.}break;

}

}//以下代码为写内容进XML文件QStringList attribs="";//由用户指定QDomElement bookNode=dom.createElement("book");

carNode.setAttribute("ISBN", isbn);//isbn由用户指定//此处开始处理attribs字符串列表中的内容for(inti=0; i

QString attribNumber=QString::number(i+1);//内容的序号: 01 02

if(i<10)

attribNumber.prepend("0");

QDomText textNode=dom.createTextNode(attribs.at(i));//取出每一个字符串QDomElement attribNode=dom.createElement("attrib");

attribNode.setAttribute("number", attribNumber);

attribNode.appendChild(textNode);

carNode.appendChild(attribNode);//属性结束}

QDomNodeList archive=carDetails.elementsByTagName("archive");

archive.item(0).appendChild(carNode);//写入XML文件中if(file->open(QIODevice::WriteOnly)) {

QTextStream stream(file);

archive.item(0).save(stream,4);

file->close();

}<?xml  version="1.0"encoding="gb2312"?>书名:C++模板元编程(C++领域扛鼎之作,荣耀先生倾情翻译,名著名译)价格:55元作者:(美)David Abrahams;Aleksey Gurtovoy出版社:机械工业出版社出版日期:2010-01-01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值