热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#学习教程:在C#中合并两个xml文件而不添加任何内容而不删除任何内容(示例给出)分享

在C#中合并两个xml文件而不添加任何内容而不删除任何内容(示例给出)所以说我有一个这样的xml文件:shape1和另一个像这样的xml文件:shape2我希望输出为:shape1

在C#中合并两个xml文件而不添加任何内容而不删除任何内容(示例给出)

所以说我有一个这样的xml文件:

 shape1  

和另一个像这样的xml文件:

   shape 2   

我希望输出为:

   shape1 shape 2   

上下文是我正在使用visio架构,但我希望将写入visio xml文件的应用程序的配置文件作为visio配置文件的精简版本。 它应该允许用户更改形状属性,例如“处理”以具有黄色并且它应该允许它们添加新形状,例如应用程序将在使用标准形状之前搜索的“AccountsTable”并使用自定义形状代替某些情况。

在合并方面,如果有意义,它基本上需要将正确的叶子节点粘贴在正确的位置? 除非已明确写入配置文件,否则不覆盖任何内容,例如自定义“形状2”。

我应该怎么看才能实现这一目标? 数据集方法非常无用。

非常感谢!!!

您可以将这两个文件加载到两个XElement对象中,在两个对象中找到目标节点,然后根据需要添加或删除。

这是一个示例:

 var doc1 = XDocument.Parse(file1).Element("shapes"); var doc2 = XDocument.Parse(file2).Element("parentNode").Element("shapes"); doc2.Add(doc1.Nodes()); 

我不认为有一个简单的解决方案。 考虑到您不限于合并Shapes节点的内容,我认为您将不得不递归地解析其中一个文档的节点,通过XPath检查这些节点中是否存在其他每个节点。 一旦找到两个文档中共有的节点,就可以合并另一个节点中的内容。 它几乎没有效率,可能有更好的方法,但这是我能想到的最好的方法。

Psuedo代码,我猜测方法名称。

 ... xmlreader xmlToMerge1 = xmlreader.create(XmlSourceVariableHere); xmlreader xmlToMerge2 = xmlreader.create(XmlSourceVariableToMergeHere); xmlwriter xmlout = new xmlwriter(someStreamOrOther); xmlout.writeBeginElement("parentnode"); xmlout.writeBeginElement("shapes"); while (xmlToMerge1.Read()) { if (xmlreader.nodetype == element && xml.Name == "shape") { xmlToMerge1.WriteNodeTo(xmlout); } } while (xmlToMerge2.Read()) { if (xmlToMerge2.nodetype == element && xmlToMerge2.Name == "shape") { xmlToMerge2.WriteNodeTo(xmlout); } } xmlout.writeEndNode(); // end shapes xmlout.writeEndNode(); // end parentnode 

我记得有一个命令可以将一个节点从一个读写器编写到一个编写器,但是我不记得具体是什么,你必须要看一个。

以下是什么意思?

在合并方面,如果有意义,它基本上需要将正确的叶子节点粘贴在正确的位置? 除非已明确写入配置文件,否则不覆盖任何内容,例如自定义“形状2”。

如果您希望答案比简单地合并节点更详细,则必须更多地解释您的要求。

上述就是C#学习教程:在C#中合并两个xml文件而不添加任何内容而不删除任何内容(示例给出)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记


推荐阅读
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
author-avatar
tomorrow
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有