zoukankan      html  css  js  c++  java
  • 在XML文档中替换元素名称的做法

    不要小看这个操作,其实是不太容易的。请注意,我们是要替换掉元素的名称,而不是元素的值。

    XML的内容在内存中是一个DOM树,要替换掉一个元素,其实是要新建一个元素,并且将原先元素的所有子元素都复制过来。在LINQ TO XML中用ReplaceWith来实现

    using System;
    using System.Linq;
    using System.Xml.Linq;

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                XDocument doc = new XDocument(
                    new XElement("Tables"
                        , new XElement("Table"
                            , new XElement("Name", "Orders")
                            , new XElement("Owner", "chenxizhang"))
                        , new XElement("Table"
                            , new XElement("Name", "Customers")
                            , new XElement("Owner", "Allen"))
                        ));
                Console.WriteLine("原始的XML内容:");
                Console.WriteLine(doc);

                //改变Tables元素名称为Items
                Console.WriteLine("改变了根元素之后显示的效果:");
                XElement root = doc.Element("Tables");
                root.ReplaceWith(new XElement("Items", root.Elements("Table")));
                Console.WriteLine(doc);

                //改变Table元素名称为Item

                Console.WriteLine("改变了子元素之后显示的效果:");
                foreach (var item in doc.Elements("Items").Descendants().ToList())//这里一定要先ToList
                {
                    item.ReplaceWith(new XElement("Item", item.Descendants()));
                }
                Console.WriteLine(doc);

                Console.Read();
            }
        }
    }

     

    image

  • 相关阅读:
    (转)使用vsphere client 克隆虚拟机
    【转】VIM高级用法笔记
    Oracle RAC的Failover
    /dev/shm过小导致ORA00845错误解决方法
    (转)How to use udev for Oracle ASM in Oracle Linux 6
    ORACLE十进制与十六进制的转换
    解决Oracle RAC不能自动启动的问题
    RAC集群时间同步服务
    db link hang的解决方法
    【转载】Oracle数据恢复 Linux / Unix 误删除的文件恢复
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1489277.html
Copyright © 2011-2022 走看看