【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();
	
}
相关推荐
AA-代码批发V哥7 分钟前
Math工具类全面指南
java·开发语言·数学建模
Nobkins25 分钟前
2021ICPC四川省赛个人补题ABDHKLM
开发语言·数据结构·c++·算法·图论
十八年的好汉27 分钟前
buck变换器的simulink/matlab仿真和python参数设计
开发语言·matlab
88号技师27 分钟前
2025年6月一区SCI-不实野燕麦优化算法Animated Oat Optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
我不是程序猿儿28 分钟前
【C#】Thread.Join()、异步等待和直接join
开发语言·c#
独行soc42 分钟前
2025年渗透测试面试题总结-百度面经(题目+回答)
运维·开发语言·经验分享·学习·面试·渗透测试·php
免檒1 小时前
go语言协程调度器 GPM 模型
开发语言·后端·golang
海棠蚀omo1 小时前
C++笔记-红黑树
开发语言·c++·笔记
雪芽蓝域zzs1 小时前
JavaScript splice() 方法
开发语言·javascript·ecmascript
休息一下接着来1 小时前
C++ I/O多路复用
linux·开发语言·c++