【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();
	
}
相关推荐
free-elcmacom5 小时前
MATLAB物理仿真<1>电磁场有限元仿真
开发语言·matlab·电磁场仿真
Emilia486.5 小时前
C++ 类与对象:解锁面向对象编程的核心密码(上)
开发语言·c++
成豆o((⊙﹏⊙))o.6 小时前
C语言基础知识,仅供自己参考
c语言·开发语言
行走在电子领域的工匠6 小时前
台达ST:自定义串行通讯传送与接收指令COMRS程序范例二
开发语言
Sally_xy6 小时前
Python 虚拟环境
开发语言·chrome·python
张np6 小时前
java基础-List接口
java·开发语言
拾贰_C6 小时前
[python ]anaconda
开发语言·python
VBA63376 小时前
VBA数据库解决方案第二十五讲:工作表中数据在数据表中批量删除
开发语言
7ioik6 小时前
新增的类以及常用的方法有哪些?
java·开发语言·python
无限进步_6 小时前
深入理解顺序表:从原理到完整实现
c语言·开发语言·数据结构·c++·算法·链表·visual studio