XML C#增删改查

目录

一、XML遍历

前期准备:

1、DataSet -- XML遍历

2、XElement-- XML遍历

3、XmlReader-- XML遍历

4、XmlTextReader-- XML遍历

二、XElement 增删改查

1、XElement -- 增

2、XElement -- 删

3、XElement -- 改

4、XElement -- 查

5、完整代码

三、XmlElement增删改查

1、XmlElement -- 增

2、XmlElement -- 删

3、XmlElement -- 改

4、XmlElement -- 查

5、完整代码


一、XML遍历

前期准备:

1、DataSet -- XML遍历

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        DataSet ds = new DataSet();
        ds.ReadXml(@"C:\Users\Rush\Desktop\C#基础\XML\b.xml");
    }
}

结果显示:

2、XElement-- XML遍历

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        XDocument xDoc = XDocument.Load(@"C:\Users\Rush\Desktop\C#基础\XML\b.xml");

        //遍历组
        foreach (XElement group in xDoc.Root.Elements())
        {
            if (group.HasAttributes)
            {
                Console.WriteLine(group.Name + "  " + group.Attribute("id").Value);
            }
            //遍历元素
            foreach (XElement item in group.Elements())
            {
                Console.WriteLine(item.Name + "  " + item.Value);
            }
        }
        //获取CDATA数据
        string resultString = Regex.Match(xDoc.Root.ToString(), @"(?<=<!\[CDATA\[)(\s|\S)*(?=]]>)").Value;
        Console.WriteLine(resultString);
    }
}

结果显示:

3、XmlReader-- XML遍历

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        XDocument xDoc = XDocument.Load(@"C:\Users\Rush\Desktop\C#基础\XML\b.xml");
       
        using (XmlReader dr = xDoc.Root.CreateReader())
        {
            while (dr.Read())
            {
                if (dr.HasAttributes)
                {
                    Console.WriteLine(dr.GetAttribute(0));
                }
                if (dr.HasValue)
                {
                    Console.WriteLine(dr.Value);
                }
            }
        }
    }
}

结果显示:

4、XmlTextReader-- XML遍历

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        XmlTextReader reader = new XmlTextReader(@"C:\Users\Rush\Desktop\C#基础\XML\b.xml");
        while (reader.Read())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    Console.WriteLine("<{0}>", reader.Name);
                    break;
                case XmlNodeType.Text:
                    Console.WriteLine(reader.Value);
                    break;
                case XmlNodeType.CDATA:
                    Console.WriteLine("<![CDATA[{0}]]>", reader.Value);
                    break;
                case XmlNodeType.ProcessingInstruction:
                    Console.WriteLine("<?{0} {1}?>", reader.Name, reader.Value);
                    break;
                case XmlNodeType.Comment:
                    Console.WriteLine("<!--{0}-->", reader.Value);
                    break;
                case XmlNodeType.XmlDeclaration:
                    Console.WriteLine("<?xml version='1.0'?>");
                    break;
                case XmlNodeType.Document:
                    break;
                case XmlNodeType.DocumentType:
                    Console.WriteLine("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
                    break;
                case XmlNodeType.EntityReference:
                    Console.WriteLine(reader.Name);
                    break;
                case XmlNodeType.EndElement:
                    Console.WriteLine("</{0}>", reader.Name);
                    break;
            }
        }
    }
}

结果显示:

二、XElement 增删改查

1、XElement -- 增

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XDocument xDoc = XDocument.Load(path);

        //增
        xDoc.Root.Add(new XElement("group", new XAttribute("id", "4"),
                            new XElement("name", "小冰"),
                            new XElement("age", "20")
                            )
                      );
        xDoc.Save(path);
    }
}

2、XElement -- 删

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XDocument xDoc = XDocument.Load(path);
        
        //删
        xDoc.Descendants("group")
            .SingleOrDefault(x => x.Attribute("id")
                                   .Value.Equals("4"))
            .Remove();
        xDoc.Save(path);
    }
}

3、XElement -- 改

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XDocument xDoc = XDocument.Load(path);
        
        //改 元素
        xDoc.Descendants("group")
            .SingleOrDefault( x => x.Attribute("id").Value.Equals("4") )
            .SetElementValue("name", "小微");
        
        //改 属性
        xDoc.Descendants("group")
            .SingleOrDefault( x => x.Attribute("id").Value.Equals("4") )
            .SetAttributeValue("id", "9");
        xDoc.Save(path);
    }
}

4、XElement -- 查

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XDocument xDoc = XDocument.Load(path);
        
        //查
        string name = xDoc.Descendants("group")
                          .SingleOrDefault( x => x.Attribute("id").Value.Equals("2") )
                          .Element("name").Value;
        Console.WriteLine(name);
    }
}

5、完整代码

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XDocument xDoc = XDocument.Load(path);

        //增
        xDoc.Root.Add(new XElement("group", new XAttribute("id", "4"),
                            new XElement("name", "小冰"),
                            new XElement("age", "20")
                            )
                      );

        //删
        xDoc.Descendants("group")
            .SingleOrDefault(x => x.Attribute("id").Value.Equals("4"))
            .Remove();

        //改 元素
        xDoc.Descendants("group")
            .SingleOrDefault(x => x.Attribute("id").Value.Equals("4"))
            .SetElementValue("name", "小微");
        //改 属性
        xDoc.Descendants("group")
            .SingleOrDefault(x => x.Attribute("id").Value.Equals("4"))
            .SetAttributeValue("id", "9");

        //查
        string name = xDoc.Descendants("group")
                          .SingleOrDefault(x => x.Attribute("id").Value.Equals("2"))
                          .Element("name").Value;
        Console.WriteLine(name);
        xDoc.Save(path);
    }
}

三、XmlElement增删改查

1、XmlElement -- 增

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(path);

        //----------------增-------------------
        XmlElement group = xDoc.CreateElement("group");
        XmlAttribute id = xDoc.CreateAttribute("id");
        id.Value = "13";
        group.SetAttributeNode(id);

        XmlElement name = xDoc.CreateElement("name");
        name.InnerText = "小天";
        group.AppendChild(name);

        XmlElement age = xDoc.CreateElement("age");
        age.InnerText = "23";
        group.AppendChild(age);

        xDoc.DocumentElement.AppendChild(group);
        xDoc.Save(path);
    }
}

2、XmlElement -- 删

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(path);
        
        //----------------删----------------------
        xDoc.SelectSingleNode("/root/group[@id=9]").RemoveAll();
        xDoc.Save(path);
    }
}

3、XmlElement -- 改

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(path);

        //----------------改----------------------
        xDoc.SelectSingleNode("/root/group[@id=9]/name").InnerText = "小幽";
        xDoc.Save(path);
    }
}

4、XmlElement -- 查

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(path);

        //----------------查----------------------
        string Name = xDoc.SelectSingleNode("/root/group[@id=9]/name").InnerText;
        Console.WriteLine(Name);
    }
}

5、完整代码

代码编写:

internal class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\Users\Rush\Desktop\C#基础\XML\b.xml";
        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(path);

        //----------------增-------------------
        XmlElement group = xDoc.CreateElement("group");
        XmlAttribute id = xDoc.CreateAttribute("id");
        id.Value = "13";
        group.SetAttributeNode(id);

        XmlElement name = xDoc.CreateElement("name");
        name.InnerText = "小天";
        group.AppendChild(name);

        XmlElement age = xDoc.CreateElement("age");
        age.InnerText = "23";
        group.AppendChild(age);

        xDoc.DocumentElement.AppendChild(group);


        //----------------删----------------------
        xDoc.SelectSingleNode("/root/group[@id=9]").RemoveAll();

        //----------------改----------------------
        xDoc.SelectSingleNode("/root/group[@id=9]/name").InnerText = "小幽";

        //----------------查----------------------
        string Name = xDoc.SelectSingleNode("/root/group[@id=9]/name").InnerText;
        Console.WriteLine(Name);
        xDoc.Save(path);
    }
}

如有错误,烦请批评指正

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值