基于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 >

posted @ 2018-05-01 11:25  沐木沐木  阅读(178)  评论(0编辑  收藏  举报