XML简介
1.指可扩展标记语言(extensible markup language)
2.是一种标记语言
3.被设计用于结构化、存储和传输数据
4.没有像html那样具有预定义标签,需要程序员自定义标签
5.XML被设计为具有自我描述性,并且是W3C的标准
xml文档
XML文档形成了一种树结构,它从“根部”开始,然后扩展到“树 枝”。 XML文档必须包含根元素,该元素是所有其他元素的父元素,文档中的所有元素形成了一棵文档树,这棵树从根开始,并扩展到树的最顶端,并且所有的元素都可以有子元素。
父元素拥有子元素,相同层级上的子元素成为同胞(兄弟或姐妹)。 XML中所有子元素都可以有文本内容和属性,类似于HTML
xml基础知识介绍
xml元素
XML的元素是指从开始标签直到结束标签的部分(均包括开始结束)。
一个元素可以包含: 名字、属性、文本、或混合以上
xml语法规则
1.所有的XML元素都必须有一个开始标签和结束标签,省略结束标签是非法的
<root>content</root>
2.XML标签对大小写敏感
<note>this is a test1</note>
<Note>this is a test2</Note>
3.XML一定要有一个根元素,最大的一层
<note>
<b>this is a test1</b>
<name>joy</name>
</note>
3.XML必须正确嵌套,父元素必须完全包住子元素
<note><b>this is a test2</b></note>
4.XML属性值必须加引号,元素的属性值都是一个键值对的形式
<book category="python"></book>
需要注意的是:book元素中的属性category的值是python必须用引号引起来,使用单引号和 双引号都可以,但是如果属性值本身包含双引号,外层就必须使用单引号;但 如果包含了单引号,外层必须使用双引号
xml命名规则
可以包含字母、数字以及其他字符
名称不能以数字或标点符号开头
名称不能以字母XML或xml开始
名称不能包含空格
名称可以使用任何名称,没有保留字
名称应该具有描述性,简短和简单,可以同时使用下划线
避免“-”、“.”、“:”等字符
XML注释格式为:<!--注释内容-->
CDATA
指的是不应由XML解析器进行解析的文本数据。
CDATA固定语法格式:<![CDATA[“我们自己的代码"]]>
Python解析XML三种方法
1、SAX(simple API for XML)
Python标准库中包含SAX解析器,SAX是用的是事件驱动模型,通过在解析XML过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。
解析的基本过程: 读到一个XML开始标签,就会开始一个事件,然后事件就会调用一系列的函数去处理一些事情,当读到一个结束标签时,就会触发另一个事件。所以,我们写XML文档入如果有格式错误的话,解析就会出错。这是一种流式处理,一边读一边解析,占用内存少。
2.DOM(Document Objec