本文讲解如何通过ElementTree来操作XML;
1.引入库
需要用到3个类,ElementTree,Element以及建立子类的包装类SubElement
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement as SE
2.读入并解析
tree = ElementTree(file=xmlfile)
root = tree.getroot()
读入后,tree是ElementTree的类型,获取xml根结点使用getroot()方法;
XML示例文件:
<item sid='1712' name = '大CC' >
<a id=1></a>
<a id=2></a>
</item>
3.获取儿子结点
查找Element的所有子结点:
AArry = item.findall('a')
也可使用getchildren():
childs = item.getchildren()
for subItem in childs:
print subItem.get('id')
4.插入儿子结点
方法一:
item = Element("item", {'sid' : '1713', 'name' : 'ityouhui'})
root.append(item)
方法二:
SE(root,'item',{'sid':'1713','name':'ityouhui'})
法一的好处是插入之后可以对item继续操作。法二是写法上简单,其中SE就是SubElement,在引入处做了声明;
5.操作属性
获取Element的某个属性值(eg:获取item的 name)
print root.find('item/name').text
print item.get('name')
获取Element所有属性
print item.items() # [('sid', '1712'), ('name', '大CC')]
print item.attrib # {'sid': '1712', 'name': '大CC'}
6.美化XML
在写入之前,传入root调用此函数,写入的XML文件格式整齐美观:
indent(root)
book.write(xmlfile,'utf-8')
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def
indent( elem, level = 0 ):
i
=
"\n" +
level * " "
if
len (elem):
if
not
elem.text or
not
elem.text.strip():
elem.text
=
i +
" "
for
e in
elem:
indent(e, level + 1 )
if
not
e.tail or
not
e.tail.strip():
e.tail
=
i
if
level and
( not
elem.tail or
not
elem.tail.strip()):
elem.tail
=
i
return
elem
|
分享到:
相关推荐
解析 XML 文档后,我们可以使用 ElementTree 模块提供的方法来访问和操作 XML 元素。例如,我们可以使用 `ElementTree.dump()` 方法来将 XML 元素转换成字符串:`ElementTree.dump(root)`。这将输出 XML 文档的内容...
1.引入库需要用到3个类,ElementTree,Element以及建立子类的包装类SubElement from xml.etree.ElementTree import ElementTreefrom xml.etree.ElementTree import Elementfrom xml.etree.ElementTree import ...
在Python中,我们可以使用ElementTree的`find`、`findall`和`iterfind`方法结合XPath表达式来查找和操作XML数据。 1. **标签选择**: - `tag`:选择具有特定标签名的元素,例如`//country`会选择所有名为`country`...
Python自带的ElementTree保存xml时不会保留节点属性的原始顺序,会重新排序。 这里提供一个Monkey Patch使ElementTree保存xml时能够保留节点属性的原始顺序,附有sample。
在Python编程语言中,XML(eXtensible Markup Language)是一种常见的数据交换格式,用于存储结构化数据。...但基本的XML解析和操作都可以通过`ElementTree`模块完成,它是Python处理XML的一个强大工具。
总结来说,Python的ElementTree模块提供了强大的XML处理能力,能够方便地对Plist文件进行读取、修改和保存。通过熟练运用这个模块,你可以有效地批量处理多个Plist文件,实现内容偏移量的修改或其他定制化的操作。...
这篇文章记录了使用 xml.etree.ElementTree 模块常用的几个操作,也算是总结一下,免得以后忘记了。分享出来也方法需要的朋友们参考学习,下面话不多说了,来一起看看详细的介绍吧。 概述 对比其他 Python 处理 XML ...
Python是一种流行的编程语言,它通过内置的xml.etree.ElementTree模块为处理XML文档提供了一种简单而有效的方法。 xml.etree.ElementTree模块是Python的标准库中的一个组件,它提供了一种处理XML数据的机制。它允许...
### Python使用ElementTree美化XML格式的操作 #### 引言 在进行XML文件处理时,保持良好的格式对于提高可读性和维护性至关重要。Python内置的`xml.etree.ElementTree`库虽然强大,但在处理XML文件时默认输出的XML...
Python提供了一个内置的模块xml.etree.ElementTree(简称ET),它是一个简单而强大的工具,用于解析和创建XML数据。本文将详细介绍如何使用这个模块来处理XML文件,包括解析、创建、修改和保存XML数据。 xml.etree....
python xml.etree.ElementTree遍历xml所有节点 XML文件内容: 代码: #-*- coding: UTF-8 -*- # 从文件中读取数据 import xml.etree.ElementTree as ET #全局唯一标识 unique_id = 1 #遍历所有的节点
Python中的`xml.etree.ElementTree`模块是处理XML文档的一个高效且简洁的工具,它提供了创建、解析和操作XML文档的功能。在这个实例中,我们将详细探讨如何使用`ElementTree`来生成XML文件。 首先,我们需要导入`...
ElementTree 库是 Python 中处理 XML 的重要工具,它的设计目标是提供简单而高效的 XML 处理能力。 在 ElementTree 中,XML 文档被解析为一棵元素树,其中每个节点都是一个 Element 对象,代表 XML 文档中的一个...
接着,Python的ElementTree库提供了一种简洁的方式来操作XML。通过`ET.fromstring()`函数可以解析XML字符串,得到一个Element对象树,然后可以使用方法如`.find()`, `.findall()`, `.text`等来查询和操作元素。 ...
`node-elementtree` 是对 Python 的 `ElementTree` 库的一个实现,它为 Node.JS 提供了方便的 XML 解析和操作功能。这个库的设计理念是简单易用,同时也保留了 XML 文档的树形结构,使得处理复杂的 XML 文档变得直观...
`ElementTree`也是Python标准库的一部分,提供了一种更简洁的方式来解析和创建XML文档。 ##### 安装与导入 同样地,`ElementTree`是标准库的一部分,无需额外安装。 ```python import xml.etree.ElementTree as ...
本篇文章将深入探讨如何使用Python的ElementTree库来解析、创建和操作XML文档。 XML(eXtensible Markup Language)是一种标记语言,常用于存储结构化数据。它通过标签定义元素和属性,使数据具有自解释性,易于...