XML可扩展标记语言
XML概述
XML称为可扩展标记性语言,是eXtensible Markup Language的缩写。在.NET框架中XML是非常重要的一部分。它用于描述数据,是当前处理结构化文档信息的有力工具。XML与操作系统、编程语言的开发平台无关,可以实现不同系统之间的数据交互。
XML技术应用广泛,最基本的如网站、应用程序的配置信息一般都采用XML文件描述。再如Web服务使用XML定义应用程序之间传输数据的标准格式。
XML的声明
XML同HTML语言一样都是标记语言,都有着标记。但HTML是用来展示和美化数据的,而XML主要用来保存和传输数据。
<?xml version="1.0" encoding="UTF-8"?>
<Enginner>
<ID>001</ID>
<Name>周杰伦</Name>
<Age>23</Age>
</Enginner>
提示:
<?xml version=“1.0” encoding=“UTF-8”?>是XML声明,它一般是XML文档的第一行。XML声明由以下两部分组成:
version:文档符合XML1.0规范。
encoding:文档字符编码,默认为“UTF-8”。
XML的特点
- XML中每对标记通常被称为节点,它们成对出现而且必须成对出现,用来描述这个节点存储的内容。
- XML中用于描述数据的各个节点可以自由扩展,也就是说XML用于描述信息的标记不是固定不变的。
- XML文件中的节点区分大小写。
- 标签没有被预定义,需要自定义标签(节点)。
XML的命名规则
1、名称可以含字母、数字以及其他的字符。
2、名称不能以数字或者标点符号开始。
3、名称不能以字符 “xml”(或者 XML、Xml)开始。
4、名称不能包含空格。
XML的语法规则
1、所有 XML 元素都须有关闭标签。
2、XML 标签对大小写敏感。
3、XML 必须正确地嵌套。
4、XML 文档必须有根元素。
5、XML 的属性值须加引号。
操作XML的方法
解析XML文件
public static void Main(String[] args)
{
XmlDocument myXml = new XmlDocument();
myXml.Load("文件名"); //读取指定的XML文档
XmlNode xmlN = myXml.DocumentElement; //读取XML的根节点
foreach(XmlNode node in xmlN.ChildNodes) //对子节点进行循环
{
//将每个节点的内容显示出来
switch(node.Name) //判断是那个节点
{
case "ID":
Console.WriteLine(node.InnerText); //输出ID节点中的内容
break;
case "Name":
Console.WriteLine(node.InnerText); //输出Name节点中的内容
break;
case "Age":
Console.WriteLine(node.InnerText); //输出Age节点中的内容
break;
}
}
}
-
XmlDocument对象可表示整个XML文档,它使用Load()方法将指定的XML文件读入XmlDocument对象,Load()方法的参数是XML文档的路径。属性DocumentElement用于获取XML文件的根节点。
-
XmlNode对象表示一个XML中的节点。ChildNodes属性用于获取该节点下的所有子节点。节点的Name属性是获取当前节点的名称,InnerText属性用于获取当前节点的值。
-
读取根节点有两种方式:XmlNode xmlN = myXml.DocumentElement;和 XmlElement xmlN = myXml.DocumentElement;
XmlNode和XmlElement的区别:
XmlNode是abstract(抽象类),XmlElement是class(普通类)
XmlElement是XmlNode的子类。子类拥有父类的一切行为(属性、方法),并且可以扩张
注意:
解析XML文件是必须导入命名空间System.IO。
操作XML的对象属性和方法
对象 | 属性和方法 | 说明 |
---|---|---|
XmlDocument | DocumentElement属性 | 获取根节点 |
ChildNodes属性 | 获取所有子节点 | |
Load()方法 | 读取整个XML的结构 | |
XmlNode | InnerText属性 | 当前节点的值 |
Name属性 | 当前节点的名称 | |
ChildNodes属性 | 当前节点的所有子节点 |