博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml基础总结
阅读量:6432 次
发布时间:2019-06-23

本文共 3858 字,大约阅读时间需要 12 分钟。

可扩展的标记语言(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;//找到根节点DocumentElement10 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             //orderitem22 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");

 

转载地址:http://iltga.baihongyu.com/

你可能感兴趣的文章
【linux】开发环境说明
查看>>
Python的设计哲学
查看>>
互斥锁和死锁
查看>>
usaco Number Triangles DP
查看>>
hadoop
查看>>
16 Errors and Exceptions
查看>>
机器视觉-halcon学习笔记6
查看>>
Oracle 之 AIO (异步io)
查看>>
iOS埋点统计
查看>>
建造者模式、组合模式和装饰者模式
查看>>
Effective C++ 之让自己熟悉Boost
查看>>
指针函数与函数指针理解
查看>>
UIbottun使用详解
查看>>
字符集研究之多字节字符集和unicode字符集
查看>>
writing-mode 属性:改变文本横纵方向
查看>>
java基础_break和contiune用法
查看>>
面试-java反射
查看>>
各种改改改(未完成)
查看>>
清理ambari安装的hadoop集群
查看>>
冒泡排序
查看>>