设为首页 加入收藏

TOP

QT通过DOM 读写XML的一个小问题
2014-11-24 12:11:44 来源: 作者: 【 】 浏览:0
Tags:通过 DOM 读写 XML 一个 问题

最近做一个背单词的小东东,需要在指定日期提示信息,用到了xml.工程不大,自然使用DOM.


工程中需要在指定日期中插入提示信息,最开始的想法是"查找+插入"的模式,需要同时读写操作,因此


QFile file("struct.xml");
if (!file.open(QFile::ReadWrite )){return;}


更改完毕后


QTextStream out(&fileWrite);
doc.save(out,3);
fileWrite.close();


程序运行,没有错误提示.


但是最终得到的xml文件如下




Old





Old
New


显然第一段是需要被替换,不应该出现的.调整了以下思路,更改程序如下


QFile fileRead("struct.xml");
if (!fileRead.open(QFile::ReadOnly )){return;} ///只读模式打开文件



QString errorStr;
int errorLine;
int errorColumn;


QDomDocument doc;
if (!doc.setContent(&fileRead, false, &errorStr, &errorLine, ///把fileRead塞进一个QDomDocument
&errorColumn)) {
qDebug() << "Error: Parse error at line " << errorLine << ", "
<< "column " << errorColumn << ": "
<< qPrintable(errorStr) ;
return ;//false;
}


fileRead.close(); ///过河拆桥,关掉fileRead


更改完毕后


QFile fileWrite("struct.xml");


if(!fileWrite.open(QIODevice::WriteOnly | QIODevice::Truncate)) return ; ///写入模式打开文件
QTextStream out(&fileWrite);



doc.save(out,3);
fileWrite.close();


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Objective-C实现多继承 下一篇Socket网络通讯开发总结之:Java ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)