XML是指可扩展标记语言,是一种简单的数据存储语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
以下是示例test.xml代码
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>aaa</maxid>
<login username="test" passwd='123456'>
<caption>PythonTest</caption>
<item >
<caption>测试XML</caption>
</item>
</login>
<item >
<caption>cat</caption>
</item>
</catalog>
看起来很像html超文本标记语言。
xml里面主要有标签对<aa></aa>组成,标签可以添加属性<aa id='test'></aa>,标签中间可以添加数据,标签和嵌套标签。
python处理xml有三种方法,DOM,SAX,ElementTree
ElementTree 方式几乎兼具了 DOM 方式与 SAX 方式的优点,占用内存较小、速度较快、使用也较为简单。我们也就学习ElementTree的使用方法。
ElementTree是python的XML处理模块,它提供了一个轻量级的对象模型。它在Python2.5以后成为Python标准库的一部分,但是Python2.4之前需要单独安装。在使用ElementTree模块时,需要import xml.etree.ElementTree的操作。
ElementTree表示整个XML节点树,而Element表示节点数中的一个单独的节点。
ElementTree(tag),其中tag表示根节点,初始化一个ElementTree对象。
Element(tag, attrib={}, **extra)函数用来构造XML的一个根节点,其中tag表示根节点的名称,attrib是一个可选项,表示节点的属性。
SubElement(parent, tag, attrib={}, **extra)用来构造一个已经存在的节点的子节点
Element.text和SubElement.text表示element对象的额外的内容属性,Element.tag和Element.attrib分别表示element对象的标签和属性。
ElementTree.write(file, encoding='us-ascii', xml_declaration=None, default_namespace=None, method='xml'),函数新建一个XML文件,并且将节点数数据写入XML文件中。
首先生成一个简单的xml文件,代码如下所示:
from xml.etree import ElementTree as et
# 创建根标签
root = et.Element('home')
# 创建子标签大儿子
son1 = et.SubElement(root,'son',attrib={'name':'son01'})
# 创建小儿子
son2 = et.SubElement(root,'son',attrib={'name':'son02'})
#在大儿子中创建孙子
gdson = et.SubElement(son1,'gdson',attrib={'name':'gdson1'})
#把root节点放到根节点
tree = et.ElementTree(root)
#保存xml
tree.write('home.xml',encoding = 'utf-8')
03.png
网友评论