XML

可扩展标记语言(extensible Markup language)

序列化:把一个对象转成二进制

反序列化:把二进制转换成对象

创建XML文档

//1、创建一个XML文档
            XmlDocument doc = new XmlDocument();
            //2、创建第一行描述信息
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
            //3、将创建的第一行数据添加到文档中
            doc.AppendChild(dec);
            //4、创建根元素
            XmlElement books = doc.CreateElement("Books");
            //5、添加根元素到文档
            doc.AppendChild(books);
            //6、创建子元素
            XmlElement book = doc.CreateElement("Book");
            //7、添加子元素到跟元素
            books.AppendChild(book);
            //8、创建子元素属性
            XmlElement name1 = doc.CreateElement("Name");
            name1.InnerText = "水浒传";
            //9、添加属性到子元素
            book.AppendChild(name1);
            //10、保存
            doc.Save("Books.xml");

下面是创建的XML文档

<?xml version="1.0" encoding="utf-8"?>
<Books>
  <Book>
    <Name>水浒传</Name>
  </Book>
</Books>

添加带属性的XML文档

 //1、创建一个XML文档
            XmlDocument doc = new XmlDocument();
            //2、创建第一行描述信息
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
            //3、将创建的第一行数据添加到文档中
            doc.AppendChild(dec);
            //4、创建根元素
            XmlElement books = doc.CreateElement("Books");
            //5、添加根元素到文档
            doc.AppendChild(books);
            //6、创建子元素
            XmlElement book = doc.CreateElement("Book");
            book.SetAttribute("Name","西游记");//这是设置属性
            //7、添加子元素到跟元素
            books.AppendChild(book);
            doc.Save("Books.xml");

下面是创建的XML文档

<?xml version="1.0" encoding="utf-8"?>
<Books>
  <Book Name="西游记" />
</Books>

文档对象模型

建一个类,跟XML属性一致

声明类集合,添加对象

遍历集合,写入XML文档

XML文档增删改查

#region 创建XML
            XmlDocument doc = new XmlDocument();
            //首先判断xml文档是否存在,如果存在,则追加,否则创建一个
            if (File.Exists("Books.xml"))
            {
                //加载进来
                doc.Load("Books.xml");
                //获得根节点,给子节点追加
                XmlElement books = doc.DocumentElement;
                XmlElement book = doc.CreateElement("Book");
                book.SetAttribute("Id", "1");
                books.AppendChild(book);
                XmlElement name = doc.CreateElement("Name");
                name.InnerXml = "水浒传";
                book.AppendChild(name);
            }
            else
            {
                //不存在
                XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
                doc.AppendChild(dec);
                XmlElement books = doc.CreateElement("Books");
                doc.AppendChild(books);
                XmlElement book = doc.CreateElement("Book");
                book.SetAttribute("Id", "01");
                books.AppendChild(book);
                XmlElement name = doc.CreateElement("Name");
                name.InnerXml = "西游记";
                book.AppendChild(name);

            }
            doc.Save("Books.xml");
            #endregion
            #region 查询XML
            //元素查询
            XmlDocument doc = new XmlDocument();
            doc.Load("Books.xml");
            XmlElement books = doc.DocumentElement;
            XmlNodeList xnl = books.ChildNodes;
            foreach (XmlNode item in xnl)
            {
                //获取元素内容
                Console.WriteLine(item.InnerText);
            }
            //属性查询
            XmlDocument doc = new XmlDocument();
            doc.Load("Books.xml");
            XmlElement books = doc.DocumentElement;
            XmlNodeList xnl2 = books.ChildNodes;
            foreach (XmlNode item in xnl2)
            {
                //获取属性值
                Console.WriteLine(item.Attributes["Id"].Value);
                if (item.Attributes["Id"].Value == "1")
                {
                    //修改XML
                    item.Attributes["Id"].Value = "001";
                }
            }
            //使用XPath的方式来读取XML文件
            XmlDocument doc = new XmlDocument();
            doc.Load("Books.xml");
            XmlElement books = doc.DocumentElement;
            XmlNode xnl = books.SelectSingleNode("/Books/Book/Name");
            Console.WriteLine(xnl.InnerText);
            //使用XPath的方式来读取XML文件属性值
            XmlDocument doc = new XmlDocument();
            doc.Load("Books.xml");
            XmlElement books = doc.DocumentElement;
            XmlNode xnl = books.SelectSingleNode("/Books/Book[@Id='001']");
            Console.WriteLine(xnl.InnerText);
            #endregion
            #region 删除XML
            //删除文件,除根节点外,xml文件不允许没有根节点
            XmlDocument doc = new XmlDocument();
            doc.Load("Books.xml");
            XmlElement books = doc.DocumentElement;
            books.RemoveAll();
            doc.Save("Books.xml");
      //删除XML节点
       XmlDocument doc = new XmlDocument();
       XmlElement books = doc.DocumentElement;
       XmlNode xn = books.SelectSingleNode("/Books/Book[@Id='001']");
       XmlNode items = books["Name"];//books.SelectSingleNode("/Books/Book/Name");
       items.RemoveChild(xn);//只能是直系父级删除子节点
       doc.Save("Books.xml");
       //删除节点属性
       XmlDocument doc = new XmlDocument();
       XmlElement books = doc.DocumentElement;
       XmlNode xn = books.SelectSingleNode("/Books/Book[@Id='001']");
       xn.Attributes.RemoveNamedItem("Id");
       doc.Save("Books.xml");
            #endregion

 

所操作的XML文档

<?xml version="1.0" encoding="utf-8"?>
<Books>
  <Book Id="001">
    <Name>水浒传</Name>
  </Book>
</Books>

 

转载于:https://www.cnblogs.com/xiaonangua/p/7308219.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值