zoukankan      html  css  js  c++  java
  • xml基础总结

    可扩展的标记语言(eXtensible Markup Language)

    优点:容易读懂;格式标准任何语言都内置了XML分析引擎,不用单独进行文件分析引擎的编写。
    用普通二进制传输数据的缺点,解析方式各异
    XML语法规范:标签(Tag)、嵌套(Nest)、属性。标签要闭合,属性值要用""包围,标签可以互相嵌套
    大小写敏感(CaseSensitive):标签、属性名是区分大小写的。
    XML树,父节点、子节点、兄弟节点(siblings)
    XML和HTML的区别:XML中元素必须关闭!XML中元素的属性值必须用引号。Html大小写不敏感,xml大小写敏感,html主要是用来显示数据的,xml主要是存储数据。
     
    XML中XmlElement和XmlNode的区别
    Xml节点有多种类型:属性节点、注释节点、文本节点、元素节点等
    Xml元素:元素节点。 继承自XmlNode
    InnerText和InnerXML:InnerText在xml文件里显示的部分 如果有尖括号 会被转译 而InnerXML不会!
    xml内所有的内容都是节点 标签式元素
    SetAttribute 属性设置 
    DocumentElement 根节点
     
    创建xml文件的步骤:
       1.在内存中创建xml        
    XmlDocument doc = new XmlDocument();

       2.在内存中创建xml声明

      XmlDeclaration dec =  doc.CreateXmlDeclaration("1.0", "utf-8", null);
    
       doc.AppendChild(dec);//添加到xml文档上

       3.添加根节点

               //根节点 Order
    
                XmlElement order = doc.CreateElement("Order");
    
                doc.AppendChild(order);
    
                //创建子节点元素
    
                XmlElement customerName = doc.CreateElement("CustomerName");
    
                customerName.InnerText = "小三";
    
                //追加到父节点order上
    
                order.AppendChild(customerName);

       4.添加子节点及属性

     1             XmlElement items = doc.CreateElement("Items");
     2 
     3             order.AppendChild(items);
     4 
     5             //添加属性
     6 
     7             XmlElement orderItem1 = doc.CreateElement("OrderItem");
     8 
     9             orderItem1.SetAttribute("Name", "小三");
    10 
    11             orderItem1.SetAttribute("Count","10");
    12 
    13             items.AppendChild(orderItem1);

        5.//保存到文件

     doc.Save("order.xml");//从内存中保存到xml中

    怎么读xml文件 标签没有属性的情况:

     1              XmlDocument doc = new XmlDocument();
     2 
     3             //加载xml文件
     4 
     5             doc.Load("books.xml");//在这之前要判断文件是否存在
     6 
     7             //根节点
     8 
     9             XmlElement books = doc.DocumentElement;//找到根节点DocumentElement
    10 
    11             //books 下的所有book元素
    12 
    13             XmlNodeList xnl = books.ChildNodes;
    14 
    15             foreach (XmlNode node in xnl)
    16 
    17             {
    18 
    19                 Console.WriteLine(node.ChildNodes[0].InnerText);
    20 
    21                 Console.WriteLine(node.ChildNodes[1].InnerText);
    22 
    23             }

    有属性的情况:

     
     1            XmlDocument doc = new XmlDocument();
     2 
     3             doc.Load("order.xml");
     4 
     5             //根节点
     6 
     7             XmlElement root =  doc.DocumentElement;
     8 
     9             XmlNodeList xnl = root.ChildNodes;
    10 
    11             //读取标签的名字
    12 
    13             //Console.WriteLine(xnl[0].Name);
    14 
    15             Console.WriteLine(xnl[0].InnerText);
    16 
    17             Console.WriteLine(xnl[1].InnerText);
    18 
    19             XmlNode items = xnl[2];
    20 
    21             //orderitem
    22 
    23             XmlNodeList xnl1 = items.ChildNodes;
    24 
    25             foreach (XmlNode node in xnl1)
    26 
    27             {
    28 
    29                 //获取属性的值
    30 
    31                 Console.WriteLine(node.Attributes["Name"].Value);
    32 
    33                 Console.WriteLine(node.Attributes["Count"].Value);
    34 
    35             }
    36 
    37  

     修改指定的节点

     1            XmlDocument doc = new XmlDocument();
     2 
     3             doc.Load("order.xml");
     4 
     5             //修改指定的节点
     6 
     7             //XmlNode node = doc.SelectSingleNode("/Order/CustomerName");
     8 
     9             //node.InnerText = "小薇";
    10 
    11             ////Console.WriteLine(node.InnerText);
    12 
    13             //doc.Save("order.xml");
    14 
    15             //使用xpath  读取指定的节点 此种方式比较方便
    16 
    17             //XmlNode node = doc.SelectSingleNode("/Order/CustomerName");
    18 
    19             //Console.WriteLine(node.InnerText);
    20 
    21            //XmlNodeList xnl =  doc.SelectNodes("/Order/Items/OrderItem");
    22 
    23            //foreach (XmlNode node in xnl)
    24 
    25            //{
    26 
    27            //    Console.WriteLine(node.Attributes["Name"].Value);
    28 
    29            //    Console.WriteLine(node.Attributes["Count"].Value);
    30 
    31            //}
    32 
    33             //根据标签的属性,读取指定的节点
    34 
    35             XmlNode node = doc.SelectSingleNode("/Order/Items/OrderItem[@Name='媳妇']");
    36 
    37             node.Attributes["Count"].Value = "20";
    38 
    39             doc.Save("order.xml");
  • 相关阅读:
    Socket和数据库的一些使用---郭雪彬
    懒加载--初步理解. by:王朋
    自定义带图片和文字的Button的排版--陈棚
    一些开源库分享 ---严焕培
    实现“手机qq”侧滑菜单 -- 吴欧
    iOS 小技巧总结
    Responder一点也不神秘————iOS用户响应者链完全剖析 周傅琦君
    通过版本号来判断用户是否是第一次登陆----By张秀清
    常用第三方推荐
    static, const 和 static const 变量的初始化问题
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/3198013.html
Copyright © 2011-2022 走看看