可扩展的标记语言(eXtensible Markup Language),XML非常严谨,当遇到语法错误的时就会停止工作。
- XML基础
- XML编写
- XML查询
- XML序列化
一、XML基础
(一)、XML优点:
容易读懂;格式标准任何语言都内置了XML分析引擎,不用单独进行文件分析引擎的编写。
(二)、XML的组成

(三)、XML语法规范:
标签(Tag)、嵌套(Nest)、属性。标签要闭合,属性值要用""包围,标签可以互相嵌套,大小写敏感(CaseSensitive)
(四)、元素规则
1、名字中不能包含空格
2、名字不能以数字、标点符号、xml开头
3、左尖括号(<)后不可以有空格
4、起始标签的大写小必须一致
5、XML文件中出现的第一个元素是跟元素
6、跟元素必须有完整的起始和结束标签
7、所有的子元素必须嵌套在一个跟元素中
8、嵌套元素不可以相互重叠
9、子元素如果内容为空可以缩写标签

(五)、属性规则
- 属性可以在起始标签和处理指令之间声明
- 多个属性之间使用空格分隔
- 每条属性包含属性名和属性值两个部分
一个元素中不能有重名的属性
在同一个XML文件中不同元素中属性名可以重用
属性名不可以包含空格
赋值时可以使用单引号或双引号
(六)、选择XML元素还是属性
- 元素用于封装数据,而属性通常用于提供有关元素的伴随信息,而不是封装原始数据本身
- 当信息需要简单类型的数据并且存在以下情况时,使用属性
信息需要默认值或固定值
信息需要的数据时现有元素的元数据
如果XML文件的大小很重要,推荐使用属性。
(七)注释
1、注释不能嵌套在标签中
2、只有字注释的开始和结尾可以使用双短横
3、三短横智能在注释的开头使用而不能用在结尾处
二、XML的编写
1、使用XmlTextWriter类使用的方法
2、使用XmlDocument类提供的方法
1 static void Main(string[] args) 2 { 3 XmlDocument doc = new XmlDocument(); 4 string path = "d:\\1.xml"; 5 //创建文档声明 6 if (!File.Exists(path)) 7 { 8 XmlDeclaration declarration = doc.CreateXmlDeclaration("1.0", "utf-8", null); 9 doc.AppendChild(declarration); 10 //创建跟元素 Books 11 XmlElement parent = doc.CreateElement("Books"); 12 doc.AppendChild(parent); 13 //创建Books/book 14 XmlElement book1 = doc.CreateElement("Book"); 15 parent.AppendChild(book1); 16 //创建Name 17 XmlElement name = doc.CreateElement("Name"); 18 book1.AppendChild(name); 19 name.InnerText = "红楼梦"; 20 //创建Price 21 XmlElement price = doc.CreateElement("Price"); 22 price.InnerText = "10"; 23 book1.AppendChild(price); 24 25 } 26 else 27 { 28 doc.Load(path); 29 //获取Books节点,跟节点 30 XmlElement parent = doc.DocumentElement; 31 //创建Book 32 XmlElement book1 = doc.CreateElement("Book"); 33 parent.AppendChild(book1); 34 //创建Name 35 XmlElement name = doc.CreateElement("Name"); 36 book1.AppendChild(name); 37 name.InnerText = "西游记"; 38 //创建Price 39 XmlElement price = doc.CreateElement("Price"); 40 price.InnerText = "18"; 41 book1.AppendChild(price); 42 43 } 44 doc.Save("d:\\1.xml"); 45 }
操作xml文件
XmlDocument
Save()
Load()
SelectSingleNode() 根据xpath找某个节点
SelectNodes()
DocumentElement 根节点
XmlNode
XmlElement
SetAttribute(); 设置属性
Attributes[].Value 读取属性
InnerText
InnerXml
ChildNodes
浙公网安备 33010602011771号