zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    文科妹子都会用 GitHub,你这个工科生还等什么
    阿里巴巴开发手册强制使用SLF4J作为门面担当的秘密,我搞清楚了
    天啦撸!打印日志竟然只晓得 Log4j?
    老板下了死命令,要把日志系统切换到Logback
    根号x的导数,求导方法
    Java内存模型
    loadrunner截取变量的字符串
    loadrunner11回放日志中文乱码解决办法
    软件性能测试的几个主要术语
    什么是自动化测试框架
  • 原文地址:https://www.cnblogs.com/xiaonangua/p/7308219.html
Copyright © 2011-2022 走看看