QT 读取xml文件,然后写入另外一个新的xml文件的简单方法
简单来说,读一个xml文件,然后对某些节点进行修改(本例子没有修改,增加修改也很简单),然后写入目标xml文件的例子。
- QFile srcFile(srcFileName);
- if (!srcFile.open(QFile::ReadOnly | QFile::Text)) {
- QMessageBox::warning(this, tr("Warning/ Convert"),
- tr("Cannot open soruce file %1:\n%2.")
- .arg(srcFileName)
- .arg(srcFile.errorString()));
- return;
- }
- QFile tarFile(tarFileName);
- if (!tarFile.open(QFile::WriteOnly | QFile::Text | QIODevice::Truncate)) {
- QMessageBox::warning(this, tr("Warning/ Convert"),
- tr("Cannot open target file %1:\n%2.")
- .arg(tarFileName)
- .arg(tarFile.errorString()));
- srcFile.close();
- return;
- }
- QXmlStreamReader reader(&srcFile);
- QXmlStreamWriter writer(&tarFile);
- writer.setAutoFormatting(true);
- writer.writeStartDocument();
- while (!reader.atEnd())
- {
- reader.readNext();
- if(reader.isStartElement())
- {
- QXmlStreamAttributes attr = reader.attributes();
- writer.writeStartElement(reader.name().toString());
- if(attr.size()>0)
- {
- writer.writeAttributes(attr);
- }
- }
- if(reader.isCharacters())
- {
- writer.writeCharacters(reader.text().toString());
- }
- if(reader.isEndElement())
- {
- writer.writeEndElement();
- }
- }
- writer.writeEndDocument();
- srcFile.close();
- tarFile.Close();
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论