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
元素包含了两个子元素 name
和 age
。
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
元素包含了 category
、title
、author
、year
和 price
五个子元素。