基于Python的XML文件解析(0)
XML简介
什么是XML
XML是指可扩展标记语言,主要被设计来传输和存储数据。在XML文件中,没有任何一个标签是被预定义过的,需要作者自定义标签。
一个XML的文档实例如下所示。
<?xml version='1.0' encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML文档形成了一种树形结构,它从“根部”开始,然后扩展到“枝叶”。在上面这段代码中,下一行描述文档的根元素。
<note>
接下来是它的4个子元素。
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
最后一行定义了根元素的结尾:
</note>
XML文档必须包含根元素,该元素是所有其他元素的父元素。
在XML文档中,需要注意以下内容:
1.必须包含一个关闭标签;
2.XML标签对大小写敏感;
3.XML必须正确嵌套;
4.XML属性值必须加引号;
下面的第一个是错误的,第二个是对的。
<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
5.实体引用;
在XML文档中,一些字符拥有特殊的含义。当你把这些字符放在XML元素中时,会产生错误,这是因为XML会把这个当着是新的元素的开始。为此,在实际应用中会采用实体引用来避免错误。
6.XML中的注释与HTML的语法很像;
<!-- This is a commrnt -->
7.在XML文档中,空格会被保留;
8.在XML中,以LF存储换行。
XML元素
XML文档包含XML元素。XML元素是指从(且包括)开始标签直到(且包括)结束标签的部分。一个元素可以包含:
其他元素
- 其他元素
- 文本
- 属性
- 或混合以上所有
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上面的实例中,<bookstore>和<book>都有元素内容,因为它们包含其他元素。<book>元素也有属性(category="CHILDREN")。<title>、<author>、<year>和<price>有文本内容,因为它们包含文本。
XML命名规则
XML文档必须遵循以下命名规则:
- 名称可以包含字母、数字以及其他字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母xml(或者XML、Xml等等)开始
- 名称不能包含空格
- 可以使用任何名称,没有保留字词
XML属性
XML元素具有属性(Attribute),以提供有关元素的额外信息。属性提供不属于数据组成部分的信息。
<file type='gif'>computer.gif</file>
上面这个实例中,属性type定义了文件的类型,便于后期出来。
在XML中,使用属性需要注意的一些问题:
- 属性不能包含多个值(元素可以)
- 属性不能包含树结构(元素可以)
- 属性不容易扩展(元素可以)
属性难以阅读和维护,请尽量使用元素来描述数据,而仅仅使用属性来提供与数据无关的信息。
该部分内容主要参考< http://www.runoob.com/xml/xml-display.html >