【Qt】xml Dom复制

1. 功能

A.xml文件中的copyNode节点全部复制到B.xml中的testRoot节点。

2. 代码

c 复制代码
#include <QDomDocument>
#include <QFile>
#include <QIODevice>
#include <QtXml>

void copyNodeXml()
{
	// 源文件DOM
	QDomDocument ADoc;
	 
	// 加载源文件
	QFile fileA("A.xml");
	if (!fileA.open(QIODevice::ReadOnly)) {
		// 错误处理
	}
	if (!ADoc.setContent(&fileA)) {
		// 错误处理
	}
	fileA.close();
	
	/************************************************************/
	
	//目的DOM
	QDomDocument BDoc;
	
	//目的文件
	QFile fileB("B.xml");
    if(!fileB.open(QFile::WriteOnly | QFile::Truncate)){
        // 错误处理
    }
	
	/************************************************************/

    //创建XML头部格式
    QDomProcessingInstruction instruction;
    instruction = BDoc.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\"");
    BDoc.appendChild(instruction);

    //添加根节点
    QDomElement root = BDoc.createElement("testRoot");
    BDoc.appendChild(root);
	
	/************************************************************/
	
	//开始复制
	QDomNode methodOriginal = ADoc.elementsByTagName("copyNode").at(0);
    QDomNode newNode = methodOriginal.cloneNode(true); //递归复制
    root.appendChild(newNode);
	
	/************************************************************/
	
	//保存
    QTextStream out_stream(&fileB);
    BDoc.save(out_stream, 4);

    fileB.close();
	
}
相关推荐
rit843249920 分钟前
基于MATLAB的模糊图像复原
开发语言·matlab
fie888925 分钟前
基于MATLAB的声呐图像特征提取与显示
开发语言·人工智能
_extraordinary_1 小时前
Java SpringMVC(二) --- 响应,综合性练习
java·开发语言
Larry_Yanan2 小时前
QML学习笔记(三十四)QML的GroupBox、RadioButton
c++·笔记·qt·学习·ui
@。1242 小时前
对于灰度发布(金丝雀发布)的了解
开发语言·前端
hsjkdhs3 小时前
C++之多层继承、多源继承、菱形继承
开发语言·c++·算法
Full Stack Developme4 小时前
Python Redis 教程
开发语言·redis·python
qq_4924484464 小时前
Jmeter设置负载阶梯式压测场景(详解教程)
开发语言·python·jmeter
Lucky_Turtle4 小时前
【Java Xml】Apache Commons Digester3解析
xml·java·apache
ID_180079054735 小时前
京东获取整站实时商品详情数据|商品标题|数据分析提取教程
java·开发语言