XML 学习笔记

什么是 XML?

XML(Extensible Markup Language)是一种标记语言,它可以用来描述各种类型的数据。XML 和 HTML 非常相似,但是 XML 不被用于显示数据内容,而被用于存储和传输数据。XML 被设计为具有自我描述性,意味着 XML 文件包含了其自身的描述信息,如元素名称、属性和值等。

XML 元素

XML 文档由一个或多个元素构成。每个元素都有一个开始标签和一个结束标签,中间是元素的内容。例如:

xmlCopy Code
<person> <name>John Doe</name> <age>30</age> </person>

上面的代码中,person 元素包含了两个子元素 nameage

XML 属性

XML 元素可以包含零个或多个属性。属性是元素的附加信息,一般用于提供元素的某些特性或配置项。例如:

xmlCopy Code
<book category="Fiction"> <title>The Great Gatsby</title> <author>F. Scott Fitzgerald</author> </book>

上面的代码中,book 元素包含一个 category 属性,其值为 Fiction

XML 命名空间

XML 命名空间用于避免命名冲突。在 XML 中,元素和属性可以使用前缀来标识其所属的命名空间。例如:

xmlCopy Code
<root xmlns:foo="http://www.example.com/foo"> <foo:bar>baz</foo:bar> </root>

上面的代码中,foo 前缀指向了 http://www.example.com/foo 命名空间,foo:bar 元素表示属于此命名空间下的 bar 元素。

XML 解析

常见的 XML 解析方式有两种:基于 DOM 和基于 SAX。基于 DOM 的解析方式将整个 XML 文档一次性读取到内存中,并构建一个树形结构以便查询和修改。基于 SAX 的解析方式则是逐行读取 XML 文档,并在解析时触发回调函数来处理 XML 元素和属性。

实例

以下是一个示例 XML 文档,用于表示一本书籍:

xmlCopy Code
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="科幻小说"> <title>三体</title> <author>刘慈欣</author> <year>2008</year> <price>39.00</price> </book> <book category="历史小说"> <title>明朝那些事儿</title> <author>当年明月</author> <year>2006</year> <price>29.00</price> </book> </bookstore>

该 XML 文档包含了一个 bookstore 元素,它包含了两个 book 子元素。每个 book 元素包含了 categorytitleauthoryearprice 五个子元素。