C# 操作XML

时间:2025-03-27 11:10:54

使用xml时,一定要引用命名空间:using ;

  1. 创建不带属性的xml文档
             // (1)创建xml文档对象
            XmlDocument doc = new XmlDocument();

            // (2)创建描述信息(第1行)
            XmlDeclaration dec = ("1.0", "utf-8", null);
            (dec);

            // (3)创建根节点(Books)
            XmlElement books = ("Books");
            (books);

            // (4)给根节点Books创建第1个子节点
            XmlElement book1 = ("Book");
            (book1);

            XmlElement name1 = ("Name");
             = "红楼梦";
            (name1);

            XmlElement writer1 = ("Writer");
             = "曹雪芹";
            (writer1);

            XmlElement price1 = ("Price");
             = "25";
            (price1);


            // (5)给根节点Books创建第2个子节点
            XmlElement book2 = ("Book");
            (book2);

            XmlElement name2 = ("Name");
             = "西游记";
            (name2);

            XmlElement writer2 = ("Writer");
             = "吴承恩";
            (writer2);

            XmlElement price2 = ("Price");
             = "20";
            (price2);


            // (5)保存到doc文档中
            ("");
            ("保存成功");


效果如下:

<?xml version="1.0" encoding="utf-8"?>
<Books>
  <Book>
    <Name>红楼梦</Name>
    <Writer>曹雪芹</Writer>
    <Price>25</Price>
  </Book>
  <Book>
    <Name>西游记</Name>
    <Writer>吴承恩</Writer>
    <Price>20</Price>
  </Book>
</Books>
  1. 创建带属性的xml文档
            // (1)创建xml文档对象
            XmlDocument doc = new XmlDocument();

            // (2)创建描述信息(第1行)
            XmlDeclaration dec = ("1.0", "utf-8", null);
            (dec);

            // (3)创建根节点(Order),且保存
            XmlElement order = ("Order");
            (order);

            // (4)给根节点Books创建第1个子节点
            XmlElement customrName = ("CustomrName");
             = "Jom";
            (customrName);

            XmlElement carName = ("CarName");
             = "奥迪";
            (carName);

            XmlElement price = ("Price");
             = "50万";
            (price);



            // (5)给根节点Books创建第2个子节点
            XmlElement items = ("Items");
            (items);
            XmlElement orderItem2 = ("OrderItem");

            ("Name", "手机");   //给节点添加属性
            ("Count", "10");
            (orderItem2);


            XmlElement orderItem3 = ("OrderItem");
            ("Name", "平板");   //给节点添加属性
            ("Count", "15");
            (orderItem3);


            // (5)保存到doc文档中
            ("");
            ("保存成功");

效果如下:

<?xml version="1.0" encoding="utf-8"?>
<Order>
  <CustomrName>Jom</CustomrName>
  <CarName>奥迪</CarName>
  <Price>50万</Price>
  <Items>
    <OrderItem Name="手机" Count="10" />
    <OrderItem Name="平板" Count="15" />
  </Items>
</Order>
  1. 删除Items节点下的所有元素
            XmlDocument doc = new XmlDocument();
            ("");

            XmlNode xn = ("/Order/Items");
            ();
            ("");  //删除后重新保存一下

删除前:

<?xml version="1.0" encoding="utf-8"?>
<Order>
  <CustomrName>Jom</CustomrName>
  <CarName>奥迪</CarName>
  <Price>50万</Price>
  <Items>
    <OrderItem Name="手机" Count="10" />
    <OrderItem Name="平板" Count="15" />
  </Items>
</Order>

删除后:

<?xml version="1.0" encoding="utf-8"?>
<Order>
  <CustomrName>Jom</CustomrName>
  <CarName>奥迪</CarName>
  <Price>50万</Price>
  <Items>
  </Items>
</Order>
  1. 读取不带属性的xml文档
            XmlDocument doc = new XmlDocument();
            //加载要读取的xml
            ("");

            //获取根节点
            XmlElement books = ;

            //获取子节点 返回节点集合
            XmlNodeList xnl = ;

            foreach (XmlNode item in xnl)
            {
                ( + "\r\n");
            }

xml文档

<?xml version="1.0" encoding="utf-8"?>
<Books>
  <Book>
    <Name>红楼梦</Name>
    <Writer>曹雪芹</Writer>
    <Price>25</Price>
  </Book>
  <Book>
    <Name>西游记</Name>
    <Writer>吴承恩</Writer>
    <Price>20</Price>
  </Book>
</Books>

效果如下:
红楼梦曹雪芹25
西游记吴承恩20

  1. 读取带属性的xml文档
            XmlDocument doc = new XmlDocument();
            ("");
            XmlNodeList xnl = ("/Order/Items/OrderItem");

            foreach (XmlNode node in xnl)
            {
                (["Name"].Value + "\r\n");
                (["Count"].Value + "\r\n");

            }

xml文档

<?xml version="1.0" encoding="utf-8"?>
<Order>
  <CustomrName>Jom</CustomrName>
  <CarName>奥迪</CarName>
  <Price>50万</Price>
  <Items>
    <OrderItem Name="手机" Count="10" />
    <OrderItem Name="平板" Count="15" />
  </Items>
</Order>

效果如下:
手机
10
平板
15

最后再介绍一种常用的方法:

读取name节点的元素:

<?xml version="1.0" encoding="utf-8"?>
<school>
  <name>昆山一中</name>
  <addr>苏州市昆山市马鞍山中路619号</addr>
  <tel>0512-123456789</tel>
</school>

程序如下:

            /* 步骤:
             * 1.实例化一个xml对象
             * 2.加载一个xml文档到这个对象
             * 3.获取根节点
             * 4.在此根节点上根据参数查找子节点
             * 5.获取子节点的元素
             */


            XmlDocument doc = new XmlDocument();
            ("");

            XmlNode root = ;
            XmlNode name = ("//name");
            if (name != null)
            {
                string schoolName = ;  //结果:昆山一中

            }

源文件下载地址:
链接:/s/1djYSwlLCYw7s1jF-PRFSTw
提取码:h3au