zoukankan      html  css  js  c++  java
  • C#XML操作详解

    添加引用

    using System.Xml;

     创建XML文件

    复制代码
    XmlDocument xmldoc=new XmlDocument();
    //加入XML的声明段落:<?xmlversion="1.0" encoding="utf-8"?>
    XmlDeclaration xmldecl=xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
    xmldoc.AppendChild(xmldecl);
    //保存创建好的XML文档
    xmldoc.Save(@"D:user.xml");
    复制代码

     加载XML文件

    //方法一:Lode方法加载的是XML文件所在的路径
    xmldoc.Load(@"D:user.xml");
    //方法二:LoadXml方法加载的是XML字符串
    xmldoc.LoadXml("<user></user>");

     创建节点

    复制代码
    //创建根节点
    XmlElement xmlroot = xmldoc.CreateElement("user");
    xmldoc.AppendChild(xmlroot);
    //创建根节点的子节点
    XmlElement ePerson=xmldoc.CreateElement("person");
    xmlroot.AppendChild(ePerson);
    复制代码

     获取节点

    复制代码
    //获取根节点
    XmlElement root = xmldoc.DocumentElement;
    //获取单个节点:如果有筛选到多个符合条件的,默认选第一个
    XmlNode node=xmldoc.SelectSingleNode("user");//方法一:获取标签名为:user的节点
    XmlNode node=xmldoc.SelectNodes("user").Item(0);//方法二:这种方法需要了解节点排列顺序才可以准确的获取想要的节点
    XmlNode node=xmldoc.SelectSingleNode("user/person[@name='王五']")//方法三:指定了属性,进一步筛选
    //获取该路径下所有节点的集合
    XmlNodeList nodelist=xmldoc.SelectNodes("user/person");//方法一:获取user节点下的person节点集合
    XmlNodeList nodelist=xmldoc.SelectSingleNode("user").ChildNodes;//方法二:获取user节点下的所有子节点
    XmlNodeList nodelist=xmlroot.GetElementsByTagName("person")//方法三:获取根节点下的标签名为person的节点集合
    //遍历节点
    foreach(XmlNode childNode in nodelist)
    {
        Response.Write(childNode .Name);
    }
    复制代码

     删除节点

    //删除其下所有节点和其本身的属性以(只剩下标签)
    xmlroot.RemoveAll();
    //删除指定节点,括号里传入的是节点名
    xmlroot.RemoveChild(person);

     设置属性以及文本节点

    复制代码
    //方法一
    person.SetAttribute("name","张三");
    //方法二:这种方法可以用来获取和设置属性值,但前提是该属性要存在
    person.Attributes["name"].Value = "张三三";
    //方法三
    XmlAttribute age = xmldoc.CreateAttribute("age");
    age.Value = "23";
    person.Attributes.Append(age);
    //设置文本节点
    person.InnerText = "123";
    复制代码

    获取属性值

    复制代码
    //方法一
    string name=person.Attributes["name"].Value.ToString();
    //方法二
    string name=person.GetAttribute("name").ToString();
    //方法三:XmlNode.SelectSingleNode()方法中,节点名加@表示查找属性,但最后要转成(XmlAttribute)
    XmlAttribute xa = (XmlAttribute)person.SelectSingleNode("@" + name);
    string name=xa.Value.ToString();
    复制代码

    删除属性

    复制代码
    //方法一:删除指定属性
    person.RemoveAttribute("age");
    //方法二:删除某个位置的属性(需要了解属性的顺序)
    person.RemoveAttributeAt(0);
    //方法三:删除所有属性
    person.RemoveAllAttributes();
    复制代码

    XmlNode和XmlElement比较

    XmlElement是XmlNode的子类。

    Xml节点有多种类型:属性节点、注释节点、文本节点、元素节点等。XmlNode是这多种节点的统称,但是XmlElement专门指的就是元素节点。

    XmlElement是具现类,可以直接实例化,而XmlNode是抽象类。

  • 相关阅读:
    FFT学习及简单应用(一点点详细)
    Codeforces 1131 (div 2)
    【NOI2012】魔幻棋盘
    【hdu多校联考第二场】Odd Shops
    【Helvetic Coding Contest 2018】B2. Maximum Control (medium)
    解线性同余方程组
    Math teacher's homework
    【NOIP模拟赛】一道挖掉背景的数学题
    逆向基础-模块隐藏之断链
    解决请求筛选模块被配置为拒绝包含的查询字符串过长的请求
  • 原文地址:https://www.cnblogs.com/asdyzh/p/9756984.html
Copyright © 2011-2022 走看看