【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();
	
}
相关推荐
李永奉5 小时前
C语言-嵌入式开发C语言常用预处理指令合集
c语言·开发语言
上海安当技术5 小时前
敏感数据怎么防拖库?信封加密(DEK+KEK 二层密钥)架构设计与 Java 实战
java·开发语言·python
我是唐青枫5 小时前
Java JCommander 实战详解:用注解解析命令行参数
java·开发语言
大鹏说大话6 小时前
C++ 内存布局详解:类、虚函数、虚表底层原理
java·开发语言
键盘会跳舞6 小时前
C++:容器适配器 queue 的源码级拆解
开发语言·c++·queue
Loge编程生活7 小时前
打卡信奥刷题(3449)用C++实现信奥题 P10429 [蓝桥杯 2024 省 B] 拔河
开发语言·数据结构·c++·算法·青少年编程
在世修行8 小时前
从零打造 C# 工业视觉检测系统(八):Modbus RTU 协议解析与 PLC 剔除控制实战
开发语言·c#
sunburn-8 小时前
Java 队列全面详解:从入门到面试实战
java·开发语言·汇编·ide·idea
AI直播技术杂谈8 小时前
AI直播推流链路中延迟优化的通用技术方案
开发语言·人工智能·php
Dxy12393102169 小时前
python 中的 APScheduler 使用详解
开发语言·python