QT读取xml文件,然后写入另外一个新的xml文件
来源:互联网 发布:甲骨文数据库怎么使用 编辑:程序博客网 时间:2024/05/21 09:20
一个简单方法,
简单来说,读一个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();
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();
0 0
- QT读取xml文件,然后写入另外一个新的xml文件
- 读取XML文件里的数据,然后筛选数据写入文件中
- 写入xml文件与读取xml文件
- 一个xml导入到另外一个xml文件的方法
- qt 读取xml文件
- QT读取XML文件
- C#xml文件的读取写入
- IOS XML文件的读取与写入
- IOS XML文件的读取与写入
- Xml文件的读取与写入 java
- 读取与写入XML文件
- XML文件写入与读取
- XML文件写入和读取
- XML文件的写入
- 写入一个简单的XML文件
- dom4j读取两个xml文件 然后 copy
- qt中xml文件的简单读取
- 利用 Qt 读取 XML 文件的方法
- 后台使用imagemagick的convert命令来处理图片真是太方便了。
- pig- Join 优化
- web.xml启动顺序
- 无纰漏实现无限转换
- golang面向对象总结
- QT读取xml文件,然后写入另外一个新的xml文件
- top bottom 百分比是相对于宽度
- python list中append()与extend()用法【转】http://blog.sina.com.cn/s/blog_76e94d210100vxr9.html
- AIX 进程控制
- Python机器学习库
- 栈和队列算法三之队列的基本操作
- 通过jQuery的attr修改onclick
- java和c++混合编程尝试
- 智能聊天机器人小黄鸡及其制作方法