【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();
	
}
相关推荐
xcyxiner6 小时前
DicomViewer (添加模型类)3
qt
xcyxiner1 天前
DicomViewer (目录调整) 2
qt
xcyxiner1 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR0063 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术3 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园3 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob3 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享3 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.3 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..3 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang