qdomdocument setcontent_Qt下XML文档的读、写(DOM方式) QDomDocument dom;

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

QDomDocument dom;

QFile *file = new QFile("books.xml");

if (file->open(QIODevice::ReadOnly))

{

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

}

file->close(); // 以下代码为解析XML文件中的内容

QDomNodeList books = dom.elementsByTagName("book");

for (int i = 0; i < books.count(); 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 (int j = 0; j < attribs.count(); 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 (int i = 0; i < attribs.count(); 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、付费专栏及课程。

余额充值