在C# .NET 中 合并两个 XML 文档中的数据
来源:互联网 发布:nginx filter 编辑:程序博客网 时间:2024/05/23 05:08
回复论坛中的问题而写的DEMO 。问题地址:http://bbs.csdn.net/topics/390562500?page=1#post-395382320
要把XML2的中国的XML数据合并到XML1中国下面
XML1:
<?xml version="1.0" encoding="utf-8" ?><CountryCode><Country NameChs="安哥拉" NameEng="Angola" AbbrL2="AO" AbbrL3="ANG" RegionCode="244" GMT="1" /><Country NameChs="阿富汗" NameEng="Afghanistan" AbbrL2="AF" AbbrL3="AFG" RegionCode="93" GMT="8" /><Country NameChs="阿尔巴尼亚" NameEng="Albania" AbbrL2="AL" AbbrL3="ALB" RegionCode="355" GMT="1" /><Country NameChs="阿尔及利亚" NameEng="Algeria" AbbrL2="DZ" AbbrL3="ALG" RegionCode="213" GMT="0" /><Country NameChs="安道尔共和国" NameEng="Andorra" AbbrL2="AD" AbbrL3="AND" RegionCode="376" GMT="0" /><Country NameChs="中国" NameEng="China" AbbrL2="CN" AbbrL3="CHS" RegionCode="86" GMT="8" /></CountryCode>
XML2:
<?xml version="1.0" encoding="utf-8" ?><CityIndex><Country Name="中国" NameEng="China" Code="86"><StateProvince Name="北京" NameEng="Beijing"><City Name="北京市" NameEng="Beijing Shi" PostalCode="100000" /></StateProvince><StateProvince Name="天津" NameEng="TienTisn"><City Name="天津市" NameEng="TienTisn Shi" PostalCode="300000" /></StateProvince><StateProvince Name="河北省" NameEng="HeBei Sheng"><City Name="石家庄市" NameEng="ShiJiaZhuang Shi" PostalCode="050000" /><City Name="唐山市" NameEng="TangShan Shi" PostalCode="063000" /><City Name="秦皇岛市" NameEng="QinHuangDao Shi" PostalCode="066000" /><City Name="邯郸市" NameEng="HanDan Shi" PostalCode="056002" /><City Name="邢台市" NameEng="XingTai Shi" PostalCode="054000" /><City Name="保定市" NameEng="BaoDing Shi" PostalCode="071000" /><City Name="张家口市" NameEng="ZhangJiaKou Shi" PostalCode="075000" /><City Name="承德市" NameEng="ChengDe Shi" PostalCode="076000" /><City Name="沧州市" NameEng="CangZhou Shi" PostalCode="061000" /><City Name="廊坊市" NameEng="LangFang Shi" PostalCode="102800" /><City Name="衡水市" NameEng="HengShui Shi" PostalCode="053000" /></StateProvince></Country></CityIndex>
合并代码:
XmlDocument doc1 = new XmlDocument();doc1.Load(Server.MapPath(@"XMLFile1.xml"));XmlDocument doc2 = new XmlDocument();doc2.Load(Server.MapPath(@"XMLFile2.xml"));XmlNode root1 = doc1.DocumentElement;//获取所有节点为"CityIndex"的节点XmlNodeList xnl = doc2.SelectNodes("CityIndex"); foreach (XmlNode xnItem in xnl){XmlNode root2 = doc1.ImportNode(xnItem, true);root1.AppendChild(root2);}doc1.Save(Server.MapPath(@"XMLFile3.xml"));
合并后的效果如下:
<?xml version="1.0" encoding="utf-8"?><CountryCode> <Country NameChs="安哥拉" NameEng="Angola" AbbrL2="AO" AbbrL3="ANG" RegionCode="244" GMT="1" /> <Country NameChs="阿富汗" NameEng="Afghanistan" AbbrL2="AF" AbbrL3="AFG" RegionCode="93" GMT="8" /> <Country NameChs="阿尔巴尼亚" NameEng="Albania" AbbrL2="AL" AbbrL3="ALB" RegionCode="355" GMT="1" /> <Country NameChs="阿尔及利亚" NameEng="Algeria" AbbrL2="DZ" AbbrL3="ALG" RegionCode="213" GMT="0" /> <Country NameChs="安道尔共和国" NameEng="Andorra" AbbrL2="AD" AbbrL3="AND" RegionCode="376" GMT="0" /> <Country NameChs="中国" NameEng="China" AbbrL2="CN" AbbrL3="CHS" RegionCode="86" GMT="8" /> <CityIndex> <Country Name="中国" NameEng="China" Code="86"> <StateProvince Name="北京" NameEng="Beijing"> <City Name="北京市" NameEng="Beijing Shi" PostalCode="100000" /> </StateProvince> <StateProvince Name="天津" NameEng="TienTisn"> <City Name="天津市" NameEng="TienTisn Shi" PostalCode="300000" /> </StateProvince> <StateProvince Name="河北省" NameEng="HeBei Sheng"> <City Name="石家庄市" NameEng="ShiJiaZhuang Shi" PostalCode="050000" /> <City Name="唐山市" NameEng="TangShan Shi" PostalCode="063000" /> <City Name="秦皇岛市" NameEng="QinHuangDao Shi" PostalCode="066000" /> <City Name="邯郸市" NameEng="HanDan Shi" PostalCode="056002" /> <City Name="邢台市" NameEng="XingTai Shi" PostalCode="054000" /> <City Name="保定市" NameEng="BaoDing Shi" PostalCode="071000" /> <City Name="张家口市" NameEng="ZhangJiaKou Shi" PostalCode="075000" /> <City Name="承德市" NameEng="ChengDe Shi" PostalCode="076000" /> <City Name="沧州市" NameEng="CangZhou Shi" PostalCode="061000" /> <City Name="廊坊市" NameEng="LangFang Shi" PostalCode="102800" /> <City Name="衡水市" NameEng="HengShui Shi" PostalCode="053000" /> </StateProvince> </Country> </CityIndex></CountryCode>
XML2里面的节点为
<CityIndex>北京</CityIndex>
这样的话合并代码为
XmlDocument doc1 = new XmlDocument();doc1.Load(Server.MapPath(@"XMLFile1.xml"));XmlDocument doc2 = new XmlDocument();doc2.Load(Server.MapPath(@"XMLFile2.xml"));XmlNode root1 = doc1.DocumentElement;XmlNode root2 = doc1.ImportNode(doc2.DocumentElement.FirstChild, true);root1.AppendChild(root2);//如果有多个节点的话可以用下面代码 foreach(XmlNode n in doc2.DocumentElement.ChildNodes) { XmlNode root2 = doc1.ImportNode(n, true); root1.AppendChild(root2); } doc1.Save(Server.MapPath(@"XMLFile3.xml"));
- 在C# .NET 中 合并两个 XML 文档中的数据
- HOW TO:在 Visual C# .NET 中使用 System.Xml 合并两个 XML 文档中的数据
- 311530 HOW TO:在 Visual C# .NET 中使用 System.Xml 合并两个 XML 文档中的数据 (From MKBA)
- 在.NET中使用XML、读取XML文件,插入数据到XML文档中。
- 在.asp.net中读取xml文档
- 合并两个表中的数据
- 合并两个dataTable中的数据
- 合并两个vector中的数据
- 两个容器中的数据合并
- 在NET 1.1中合并两个DataTable的简单实现
- 在asp.net中 把一个文本文档的中的数据一行一行添加到textbox中
- 将TXT文档中数据导入XML文件中 C#
- C#中ADO.NET的DataSet读写XML文档
- 在ASP.NET中绑定XML数据
- C#中的XML文档注解
- 将两个Excel表中的数据合并
- 【转】c#中如何在两个窗体间传递数据
- 两个数据库表中合并数据
- 颜色 16进制对照表
- 案例:每日站立会议落实情况的再跟踪
- OpenCV例程2 how to scan images
- char *的地址长度的确定
- OpenStack基于Libvirt的虚拟化平台调度实现----Nova虚拟机启动源码实现(4)
- 在C# .NET 中 合并两个 XML 文档中的数据
- redhat linux在虚拟机中配置tftp的方法
- Svn安装与使用
- C语言中的const,volatile与restrict的使用
- Oracle 数据泵的使用(1)
- CRC原理与计算
- 关于子类重写父类私有虚函数
- maven 编译hadoop错误解决
- RHEL下安装mysql 5.5