文章目录
- 1 XML定义
- 2 了解XML结构
- 3 XML节点类型
- 4 加载读取XML
- 5 小结
1 XML定义
XML
是一种可扩展标记语言(Extensible Markup Language, XML),可以用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
2 了解XML结构
<?xml version="1.0"?>
<books>
<book>
<author>张三</author>
<price format="dollar">36.75</price>
<pubdate>2022/09</pubdate>
</book>
<pubinfo>
<publisher>台海出版社</publisher>
<state>完成</state>
</pubinfo>
</books>
1、 有且仅有一个根节点books
2、元素节点Node
之间是父子关系(书籍和作者)
或兄弟关系(价格和出版日期)
3、元素节点还可以拥有自己的属性,比如价格的属性format
格式(人民币/美元)。format
的属性值是dollar
.
4、根元素是books
, 下面的元素子节点有book
和pubinfo
; book中有元素节点price
,其中price 的值是36.75;price
有自己的属性format
, format的值是dollar.
3 XML节点类型
>>>>>>>>>>>>>>>>>>>>>>DOM节点类型 | 对象 | 描述 |
Document | XmlDocument | 树中所有节点的容器。 |
DocumentFragment | XmlDocumentFragment | 包含一个或多个不带任何树结构的节点的临时袋 |
DocumentType | XmlDocumentType | 表示!DOCTYPE...节点 |
EntityReference | XmlEntityReference | 表示非扩展的实体引用文本 |
元素 | XmlElement | 表示元素节点 |
Attr | XmlAttribute | 元素的属性 |
注释 | XmlComment | 注释结点 |
Text | XmlText | 属于某个元素或属性的文本 |
实体 | XmlEntiry | 表示XML文档中的 !ENTIRY...声明 |
Notation | XmlNotation | 表示DTD中的声明表示法 |
4 加载读取XML
使用下面的xml内容,保存到D:\books.xml
<?xml version="1.0"?>
<books>
<book>
<author>张三</author>
<price format="dollar">36.75</price>
<pubdate>2022/09</pubdate>
</book>
<pubinfo>
<publisher>台海出版社</publisher>
<state>完成</state>
</pubinfo>
</books>
加载xml文档,并读取结点内容打印出来
//创建 XmlDocument 对象
XmlDocument xml = new XmlDocument();
//加载文档
xml.Load(@"D:\books.xml");
//获取XML文档的根元素
XmlElement docElement = xml.DocumentElement;
Console.WriteLine("docElement is :" + docElement.LocalName);
//获取根元素下的第一个子节点
XmlNode bookNode = docElement.FirstChild;
Console.WriteLine("bookNode is :" + bookNode.LocalName);
foreach(XmlNode node in bookNode.ChildNodes)
{//遍历book中的节点
Console.WriteLine("node is :" + node.LocalName);
Console.WriteLine("node Text is :" + node.InnerText);
}
运行结果输出:
docElement is :books
bookNode is :book
node is :author
node Text is :张三
node is :price
node Text is :36.75
node is :pubdate
node Text is :2022/09
5 小结
XML文档的结构
1 有且仅有一个根节点
2 以<?xml version="1.0" encoding="utf-8"?>
开头
3 XML类似一个树形结构,结点之间关系可以是父子关系或兄弟同级关系
4 每个节点有自己的文本和属性,对应的属性也有属性值。
5 每个节点和属性都是我们自定义语言去描述的