关于下载和安装ElementTree,请参考官网:http://effbot.org/zone/element-index.htm
下面以这个XML文件为例:
<?xml version="1.0" encoding="UTF-8"?>
<collection shelf="New Arrivals">
<movie title="Enemy Behind">
<type>War, Thriller</type>
<format>DVD</format>
<year>2003</year>
<rating>PG</rating>
<stars>10</stars>
<description>Talk about a US-Japan war</description>
</movie>
<movie title="Transformers">
<type>Anime, Science Fiction</type>
<format>DVD</format>
<year>1989</year>
<rating>R</rating>
<stars>8</stars>
<description>A schientific fiction</description>
</movie>
<movie title="Trigun">
<type>Anime, Action</type>
<format>DVD</format>
<episodes>4</episodes>
<rating>PG</rating>
<stars>10</stars>
<description>Vash the Stampede!</description>
</movie>
<movie title="Ishtar">
<type>Comedy</type>
<format>VHS</format>
<rating>PG</rating>
<stars>2</stars>
<description>Viewable boredom</description>
</movie>
</collection>
读取XML文件:
from elementtree import ElementTree
root = ElementTree.parse('movies.xml').getroot()
movies = root.findall('.//movie')
for movie in movies:
print '--------------------'
print '@Title: ' + movie.attrib.get('title')
#access to element directly by using XPATH
e_type = movie.find('.//type')
if(e_type != None):
print e_type.tag + ' : ' + e_type.text
for subElement in movie.getchildren():
print '\t' + subElement.tag + ' : ' + subElement.text
修改并保存XML文件:
from elementtree import ElementTree
from elementtree.ElementTree import Element
root = ElementTree.parse('movies.xml').getroot()
#Create a child element
e_movie = Element('movie')
root.append(e_movie)
#This is how you set an attribute on an element
e_movie.attrib['title'] = "Test element"
e_type = Element('type')
e_type.text = 'Test element - type'
e_movie.append(e_type)
e_format = Element('format')
e_format.text = 'Test element - format'
e_movie.append(e_format)
e_year = Element('year')
e_year.text = 'Test element - year'
e_movie.append(e_year)
e_rating = Element('rating')
e_rating.text = 'Test element - rating'
e_movie.append(e_rating)
e_stars = Element('stars')
e_stars.text = 'Test element - stars'
e_movie.append(e_stars)
e_description = Element('description')
e_description.text = 'Test element - description'
e_movie.append(e_description)
#Now lets write it to an .xml file on the hard drive
#Open a file
file = open("movies2.xml", 'w')
#Create an ElementTree object from the root element
ElementTree.ElementTree(root).write(file)
#Close the file like a good programmer
file.close()
如果要使用namespace的话,可以这样:
namespace = "http://xxx"
e = root.find('.//{%s}YourElementName' % namespace)
你可能会注意到,保存后的XML文件并没有缩进对齐。很遗憾的是ELementTree中没有提供相应的方法来实现这个功能。如果你确实需要对齐缩进的话,可以使用lxml。关于 lxml的使用,请参考另一篇我的博文。
分享到:
相关推荐
解析 XML 文档后,我们可以使用 ElementTree 模块提供的方法来访问和操作 XML 元素。例如,我们可以使用 `ElementTree.dump()` 方法来将 XML 元素转换成字符串:`ElementTree.dump(root)`。这将输出 XML 文档的内容...
例如,可以使用ET.parse()函数从文件中读取XML,或者使用ET.fromstring()函数从字符串中直接解析XML。一旦数据被解析,就可以通过ElementTree或Element提供的方法来操作数据。 遍历XML树可以通过迭代Element对象来...
内容概要:本文详细介绍了如何使用Python的ElementTree模块解析XML文件,并设计合适的数据结构来保存解析结果。具体步骤包括导入ElementTree模块、解析XML文件、设计数据结构、遍历XML元素、提取信息并保存到数据...
在Python中,我们可以使用ElementTree的`find`、`findall`和`iterfind`方法结合XPath表达式来查找和操作XML数据。 1. **标签选择**: - `tag`:选择具有特定标签名的元素,例如`//country`会选择所有名为`country`...
Python中使用ElementTree可以很方便的处理XML,但是产生的XML文件内容会合并在一行,难以看清楚。 如下格式: <root><aa>aatext<cc>cctext</cc></aa><bb>bbtext<dd>ddtext<ee>eetext</ee></dd></bb></root> 使用...
1. **解析 XML**:你可以使用 `ElementTree.parse()` 函数加载 XML 文件到内存,返回一个 ElementTree 实例。 2. **访问元素**:`ElementTree.getroot()` 方法返回根元素,你可以通过 `.find()`, `.findall()` 或 `....
1. **解析XML文档**:使用`ElementTree.parse()`或`ET.fromstring()`函数解析XML文件。前者用于读取整个XML文件,后者适用于处理字符串形式的XML数据。 ```python tree = ET.parse('example.xml') # 解析XML文件 ...
python xml.etree.ElementTree遍历xml所有节点 XML文件内容: 代码: #-*- coding: UTF-8 -*- # 从文件中读取数据 import xml.etree.ElementTree as ET #全局唯一标识 unique_id = 1 #遍历所有的节点
总结起来,`node-elementtree` 是 Node.JS 开发者处理 XML 数据的一个强大工具,它提供了一种简洁的 API,使你在 JavaScript 中操作 XML 文档如同操作 JSON 对象一样方便。无论是解析、查询还是创建 XML,`node-...
在这个实例中,我们将详细探讨如何使用`ElementTree`来生成XML文件。 首先,我们需要导入`ElementTree`模块,通常我们会将其别名为`etree`,以便后续代码更加简洁: ```python from xml.etree import ElementTree ...
`ElementTree`不仅能够读取XML文件,还能创建新的XML结构,并对XML元素进行操作。这对于处理Plist文件非常有用,因为Plist本质上就是XML文档。 批量修改Plist文件的内容,首先需要导入必要的库,包括`xml.etree....
- **优点**:流式读取XML文件,速度快且内存占用低。 - **缺点**:需要用户实现复杂的回调函数。 **2. DOM (Document Object Model)** - **描述**:将XML文档解析为内存中的树形结构,通过操作树来读取或修改文档...
解析XML是指读取XML文件并将其转换为Python内部的数据结构,便于后续操作。 ##### 从XML文件中解析 ```python import xml.etree.ElementTree as ET # 加载XML文件 tree = ET.parse('example.xml') root = tree.get...
要使用pandas读取XML文件,我们需要借助额外的库如`lxml`或`xml.etree.ElementTree`,因为pandas本身并不直接支持XML解析。这里我们以`xml.etree.ElementTree`为例,它是Python标准库的一部分,不需要额外安装。 ...
在本主题“vc DOM操作xml,从Tree到Xml,xml到Tree”中,我们将深入探讨如何利用VC++(Microsoft的C++编译器)来实现DOM操作XML,并将XML数据与树形控件进行交互。 首先,我们需要了解XML的基本概念。XML...
在Python中,我们可以使用内置的`xml`模块来处理XML文件,特别是`xml.etree.ElementTree`子模块,它提供了方便的API来解析和操作XML文档。首先,我们需要导入`ElementTree`模块: ```python import xml.etree....
2. **读取XML**:通过解析库,我们可以访问XML文件中的节点和属性,提取所需信息。例如,查询特定元素的值或获取整个文档的结构。 3. **写入XML**:创建新的XML文件或修改已有文件涉及添加、删除或更新元素、属性。...
本篇文章将深入探讨如何使用Python的ElementTree库来解析、创建和操作XML文档。 XML(eXtensible Markup Language)是一种标记语言,常用于存储结构化数据。它通过标签定义元素和属性,使数据具有自解释性,易于...