QXML之QXmlStreamWriter 读写

前端之家收集整理的这篇文章主要介绍了QXML之QXmlStreamWriter 读写前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

代码出自Qt creator 快速入门,代码如下

从xml中读取数据

main.cpp

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


写入数据

main.cpp

  1. #include <QtCore/QCoreApplication>
  2. #include <QFile>
  3. #include <QXmlStreamReader>
  4. #include <QXmlStreamWriter>
  5. #include <QDebug>
  6.  
  7. int main(int argc,argv);
  8.  
  9. QFile file("../myXmlStream/my2.xml");
  10. if (!file.open(QFile::WriteOnly | QFile::Text))
  11. {
  12. qDebug() << "Error: cannot open file";
  13. return 1;
  14. }
  15.  
  16. QXmlStreamWriter stream(&file);
  17. stream.setAutoFormatting(true);
  18. stream.writeStartDocument();
  19. stream.writeStartElement("bookmark");
  20. stream.writeAttribute("href","http://qt.nokia.com/");
  21. stream.writeTextElement("title","Qt Home");
  22. stream.writeEndElement();
  23. stream.writeEndDocument();
  24.  
  25. file.close();
  26.  
  27. qDebug() << "write finished!";
  28.  
  29. return a.exec();
  30. }

猜你在找的XML相关文章