zoukankan      html  css  js  c++  java
  • 合并 XML 文件

    问题:
    有如下的两个 XML 文件,将其合并为一个 XML 文档,并输出。
    第一个 XML 文档
    <?xml version="1.0" encoding="utf-8"?>
    <root>
    <a>A</a>
    <b>B</b>
    </root>
     第二个 XML 文档
    <?xml version="1.0" encoding="utf-8"?>
    <root>
    <b>B</b>
    </root>
    要点:
    对于 XML 文档中的节点,除了通常的 ParentNode, PreviousSibling, NextSibling , FirstChild, LastChild属性等之外,还有一个重要的属性 OwnerDocument, 表示节点所属的文档对象,这是一个只读的属性,不能直接赋值。
    要改变节点所属的文档,可以使用目标文档对象的 ImportNode 来改变节点所属的文档,这个方法的定义如下:
    public virtual XmlNode ImportNode(
    	XmlNode node,
    	bool deep
    )
    
    deep 表示 是否将节点的子节点也导入到当前文档。
    代码:
    using System;
    using System.Xml;
    
    namespace XmlAppand
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument doca = new XmlDocument();
                doca.Load("A.xml");
    
                XmlDocument docb = new XmlDocument();
                docb.Load("B.xml");
                
                // 分别获取两个文档的根元素,以便于合并
                XmlElement rootA = doca.DocumentElement;
                XmlElement rootB = docb.DocumentElement;
    
                // 创建一个合并的 document
                XmlDocument result = new XmlDocument();
                // 创建根元素
                XmlElement root = result.CreateElement("root");
                result.AppendChild(root);
    
                foreach (XmlNode node in rootA.ChildNodes)
                {
                    // 先导入节点
                    XmlNode n = result.ImportNode(node, true);
                    // 然后,插入指定的位置
                    root.AppendChild(n);
                }
    
                // 同上
                foreach (XmlNode node in rootB.ChildNodes)
                {
                    XmlNode n = result.ImportNode(node, true);
                    root.AppendChild(n);
                }
    
                result.Save(Console.Out);
            }
        }
    }
    
     
  • 相关阅读:
    H3C ER6300 + 两台 H3C S5120 组网举例
    H3C S5120-52P-WiNet交换机配置
    H3C S5120清除console口密码
    光纤简介
    Windows server 2008 R2 多用户远程桌面
    AutoIt 软件自动化操作
    windows server 2008 R2 计划任务备份系统
    AD域部署使用bginfo软件
    使用WSL吧
    Could not load file or assembly……
  • 原文地址:https://www.cnblogs.com/haogj/p/2013824.html
Copyright © 2011-2022 走看看