QXML之QXmlStreamWriter 读写

代码出自Qt creator 快速入门,代码如下 从xml中读取数据

main.cpp

#include <QtCore/QCoreApplication>

#include<QFile>

#include <QXmlStreamReader>

#include <QXmlStreamWriter>

#include <QDebug>

main.cpp

 
  1. #include <QtCore/QCoreApplication>
  2. #include <QFile>
  3. #include <QXmlStreamReader>
  4. #include <QXmlStreamWriter>
  5. #include <QDebug>
  6. int main(int argc,char *argv[])
  7. {
  8. QCoreApplication a(argc,argv);
  9. QFile file("../myXmlStream/my.xml");
  10. if (!file.open(QFile::ReadOnly | QFile::Text))
  11. {
  12. qDebug()<<"Error: cannot open file";
  13. return 1;
  14. }
  15. QXmlStreamReader reader;
  16. // 设置文件,这时会将流设置为初始状态
  17. reader.setDevice(&file);
  18. // 如果没有读到文档结尾,而且没有出现错误
  19. while (!reader.atEnd()) {
  20. // 读取下一个记号,它返回记号的类型
  21. QXmlStreamReader::TokenType type = reader.readNext();
  22. // 下面便根据记号的类型来进行不同的输出
  23. if (type == QXmlStreamReader::StartDocument)
  24. qDebug() << reader.documentEncoding() << reader.documentVersion();
  25. if (type == QXmlStreamReader::StartElement) {
  26. qDebug() << "<" << reader.name() << ">";
  27. if (reader.attributes().hasAttribute("id"))
  28. qDebug() << reader.attributes().value("id");
  29. }
  30. if (type == QXmlStreamReader::EndElement)
  31. qDebug() << "</" << reader.name() << ">";
  32. if (type == QXmlStreamReader::Characters && !reader.isWhitespace())
  33. qDebug() << reader.text();
  34. }
  35. // 如果读取过程中出现错误,那么输出错误信息
  36. if (reader.hasError()) {
  37. qDebug() << "error: " << reader.errorString();
  38. }
  39. file.close();
  40. return a.exec();
  41. }

写入数据

main.cpp

 
  1. #include <QtCore/QCoreApplication>
  2. #include <QFile>
  3. #include <QXmlStreamReader>
  4. #include <QXmlStreamWriter>
  5. #include <QDebug>
  6. int main(int argc,argv);
  7. QFile file("../myXmlStream/my2.xml");
  8. if (!file.open(QFile::writeonly | QFile::Text))
  9. {
  10. qDebug() << "Error: cannot open file";
  11. return 1;
  12. }
  13. QXmlStreamWriter stream(&file);
  14. stream.setAutoFormatting(true);
  15. stream.writeStartDocument();
  16. stream.writeStartElement("bookmark");
  17. stream.writeAttribute("href","http://qt.nokia.com/");
  18. stream.writeTextElement("title","Qt Home");
  19. stream.writeEndElement();
  20. stream.writeEndDocument();
  21. file.close();
  22. qDebug() << "write finished!";
  23. return a.exec();
  24. }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值