添加引用

  1. using System.Xml;

创建XML文件

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

加载XML文件

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

 创建节点

  1. //创建根节点
  2. XmlElement xmlroot = xmldoc.CreateElement("user");
  3. xmldoc.AppendChild(xmlroot);
  4. //创建根节点的子节点
    XmlElement ePerson=xmldoc.CreateElement("person");
    xmlroot.AppendChild(ePerson);

获取节点

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

 删除节点

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

 设置属性以及文本节点

  1. //方法一
  2. person.SetAttribute("name","张三");
  3. //方法二:这种方法可以用来获取和设置属性值,但前提是该属性要存在
  4. person.Attributes["name"].Value = "张三三";
  5. //方法三
  6. XmlAttribute age = xmldoc.CreateAttribute("age");
  7. age.Value = "";
  8. person.Attributes.Append(age);
  9. //设置文本节点
  10. person.InnerText = "";

获取属性值

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

删除属性

  1. //方法一:删除指定属性
  2. person.RemoveAttribute("age");
  3. //方法二:删除某个位置的属性(需要了解属性的顺序)
  4. person.RemoveAttributeAt();
  5. //方法三:删除所有属性
  6. person.RemoveAllAttributes();

XmlNode和XmlElement比较

XmlElement是XmlNode的子类。

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

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

C#XML操作详解的更多相关文章

  1. [转]AndroidManifest.xml文件详解

    转自:http://www.cnblogs.com/greatverve/archive/2012/05/08/AndroidManifest-xml.html AndroidManifest.xml ...

  2. Maven pom.xml文件详解

    Maven pom.xml文件详解 一.简介 POM全称是Project Object Model,即项目对象模型. pom.xml是maven的项目描述文件,它类似与antx的project.xml ...

  3. AndroidManifest.xml文件详解(uses-permission)

    语法(SYNTAX): <uses-permissionandroid:name="string"/> 被包含于(CONTAINED IN): <manifest ...

  4. c3p0-config.xml模板详解

    c3p0-config.xml模板详解 <c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.De ...

  5. maven - settings.xml文件详解

    Settings.xml配置文件详解 maven默认的settings.xml是一个包含注释和例子的模板,可以快速的修改settings.xml文件 maven安装后不会在用户目录下自动生成setti ...

  6. 【maven学习】pom.xml文件详解

    环境 apache-maven-3.6.1 jdk 1.8 eclipse 4.7 POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示, ...

  7. Web.xml配置详解(转)

    Web.xml配置详解 Posted on 2010-09-02 14:09 chinaifne 阅读(295105) 评论(16) 编辑 收藏 1 定义头和根元素 部署描述符文件就像所有XML文件一 ...

  8. SpringBoot—整合log4j2入门和log4j2.xml配置详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...

  9. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

随机推荐

  1. 定义file input

    <div class="inputFileWrapper"> <label for="inputFile"> <input typ ...

  2. poj 2393 Yogurt factory(dp+贪心)

    奶牛们建了一家酸奶厂,在N周内每周需要出货Y_i单位酸奶,第i周成本为C_i,储存费为每周S.求总体最低成本. 贪心策略是维持每周的最低单位成本,每周可能用上周剩下的,也可能生产新的.于是该周单位成本 ...

  3. 通过 Autostereograms 案例学习 OpenGL 和 OpenCL 的互操作性

    引言 在过去的十年里, GPU (图形处理单元)已经从特殊硬件(特供)转变成能够在数值计算领域开辟新篇章的高性能计算机设备. 很多算法能够使用拥有巨大的处理能力的GPU来快速运行和处理大数据量.即使在 ...

  4. Kafka的可靠性问题

    a. Producer到broker 把request.required.acks设为1,丢会重发,丢的概率很小 b. Broker b.1 对于broker,落盘的数据,除非磁盘坏了,不会丢的 b. ...

  5. ChartConlrol二维图表类型

    WinForms Controls >Controls > Chart Control > Concepts > Creating Charts > 2D Chart T ...

  6. appium自动化测试

    appium官网:http://appium.io/index.html?lang=zh Requirements Your environment needs to be setup for the ...

  7. C语言_double_精度的谜团

    double-long long 和0的比较,double和double之间比较

  8. dependency injection via inversion of control

    依赖注入DI是一个程序设计模式和架构模型, 一些时候也称作控制反转,尽管在技术上来讲, 依赖注入是一个IOC的特殊实现, 依赖注入是指一个对象应用另外一个对象来提供一个特殊的能力, 例如:把一个数据库 ...

  9. jquery1.11做的改变

    $('#btn-checkall').on('click', function(){}); //替换为 $('#btn-checkall-parent-static-node').on('click' ...

  10. setTimeout的若干坑

    第一坑:作用域 首先,有一个关于this的面试题,是这样的: var fullname = 'John Doe'; var obj = { fullname: 'Colin Ihrig', prop: ...