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