在Python中,ElementTree是我们常用的一个解析XML的模块

1.导入ElementTree模块

from xml.etree import ElementTree as ET 

2.初始化一个ElementTree类。初始化ElementTree类常用两种方式:一种通过xml文件,一种通过字符串。

#通过xml文件初始化,test.xml是根文件夹的一个xml文件
myET=ET.parse("test.xml")
#通过字符串初始化
xml="<xml><name>张三</name><age>21</age></xml>"
myET=ET.XML(xml)

3.查找对象

getchildren()方法会返回根节点包含的所有子节点,返回类型为ElementTree列表

find(match)方法可以根据节点名称来寻找节点内容

print myET.getchildren()[0].text
print myET.find("name").text

两行代码输出的结果都是 张三
4.添加子节点

通过append方法添加子节点

sexET=ET.XML("<sex>男</sex>")
myET.append(sexET)

5.删除子节点

通过remove方法删除子节点

ageET=myET.find("age")
myET.remove(ageET)

6.修改内容

#修改内容
myET.find("name").text="李四"
#修改标签
myET.find("name").tag="person"

7.转换成字符串

tostring()方法可以将ElementTree对象转换成字符串

第一个参数是ElementTree对象,第二个参数是编码方式,可以缺省

 ET.tostring(myET,"utf-8")

ElementTree其他方法或属性:

tag
A string identifying what kind of data this element represents (the element type, in other words).
text
The text attribute can be used to hold additional data associated with the element. As the name implies this attribute is usually a string but may be any application-specific object. If the element is created from an XML file the attribute will contain any text found between the element tags.
tail
The tail attribute can be used to hold additional data associated with the element. This attribute is usually a string but may be any application-specific object. If the element is created from an XML file the attribute will contain any text found after the element’s end tag and before the next tag.
attrib
A dictionary containing the element’s attributes. Note that while the attrib value is always a real mutable Python dictionary, an ElementTree implementation may choose to use another internal representation, and create the dictionary only if someone asks for it. To take advantage of such implementations, use the dictionary methods below whenever possible.

The following dictionary-like methods work on the element attributes.

clear()
Resets an element. This function removes all subelements, clears all attributes, and sets the text and tail attributes to None.
get(key,default=None)

Gets the element attribute named key.

Returns the attribute value, or default if the attribute was not found.

items()
Returns the element attributes as a sequence of (name, value) pairs. The attributes are returned in an arbitrary order.
keys()
Returns the elements attribute names as a list. The names are returned in an arbitrary order.
set(key,value)
Set the attribute key on the element to value.

The following methods work on the element’s children (subelements).

append(subelement)
Adds the element subelement to the end of this elements internal list of subelements.
extend(subelements)

Appends subelements from a sequence object with zero or more elements. RaisesAssertionError if a subelement is not a valid object.

New in version 2.7.

find(match)
Finds the first subelement matching match. match may be a tag name or path. Returns an element instance orNone.
findall(match)
Finds all matching subelements, by tag name or path. Returns a list containing all matching elements in document order.
findtext(match,default=None)
Finds text for the first subelement matching match. match may be a tag name or path. Returns the text content of the first matching element, ordefault if no element was found. Note that if the matching element has no text content an empty string is returned.
getchildren()

Deprecated since version 2.7:Uselist(elem) or iteration.

getiterator(tag=None)

Deprecated since version 2.7:Use methodElement.iter() instead.

insert(index,element)
Inserts a subelement at the given position in this element.
iter(tag=None)
Creates a tree iterator with the current element as the root. The iterator iterates over this element and all elements below it, in document (depth first) order. If tag is not None or '*', only elements whose tag equals tag are returned from the iterator. If the tree structure is modified during iteration, the result is undefined.
iterfind(match)

Finds all matching subelements, by tag name or path. Returns an iterable yielding all matching elements in document order.

New in version 2.7.

itertext()

Creates a text iterator. The iterator loops over this element and all subelements, in document order, and returns all inner text.

New in version 2.7.

makeelement(tag,attrib)
Creates a new element object of the same type as this element. Do not call this method, use theSubElement() factory function instead.
remove(subelement)
Removes subelement from the element. Unlike the find* methods this method compares elements based on the instance identity, not on tag value or contents.

参考:http://www.cnblogs.com/ifantastic/archive/2013/04/12/3017110.html

http://docs.python.org/2/library/xml.etree.elementtree.html

Python中使用ElementTree解析xml的更多相关文章

  1. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  2. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  3. julia与python中的列表解析.jl

    julia与python中的列表解析.jl #=julia与python中的列表解析.jl 2016年3月16日 07:30:47 codegay julia是一门很年轻的科学计算语言 julia文档 ...

  4. Python中的列表解析和生成器表达式

    Python中的列表解析和生成器表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.列表解析案例 #!/usr/bin/env python #_*_coding:utf-8 ...

  5. 第14.12节 Python中使用BeautifulSoup解析http报文:使用select方法快速定位内容

    一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>和<第14.11节 Python中使用BeautifulSo ...

  6. 第14.11节 Python中使用BeautifulSoup解析http报文:使用查找方法快速定位内容

    一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>介绍了BeautifulSoup对象的主要属性,通过这些属性可以访 ...

  7. [python]使用ElementTree解析XML【译】

    19.7 The ElementTree XML API 源码:Lib/xml/etree/ElementTree.py Element类型是一个灵活的容器对象,设计出来是用于存储有层次的数据结构到内 ...

  8. python XML文件解析:用ElementTree解析XML

    Python标准库中,提供了ET的两种实现.一个是纯Python实现的xml.etree.ElementTree,另一个是速度更快的C语言实现xml.etree.cElementTree.请记住始终使 ...

  9. ZH奶酪:Python使用ElementTree解析XML【译】

    19.7. xml.etree.ElementTree — The ElementTree XML API 源代码: Lib/xml/etree/ElementTree.py Element类型是一种 ...

随机推荐

  1. 信号之sigpending函数

    sigpending函数返回信号集,其中的各个信号对于调用进程是阻塞的而不能递送,因而也一定是当前未决的.该信号集通过set参数返回.(这些信号是已经产生的信号,但因为信号屏蔽字中对其设置了屏蔽位,从 ...

  2. Asp.Net 之 缓存机制

    asp.net缓存有三种:页面缓存,数据源缓存,数据缓存. 一.页面缓存 原理:页面缓存是最常用的缓存方式,原理是用户第一次访问的时候asp.net服务器把动态生成的页面存到内存里,之后一段时间再有用 ...

  3. h5拖放-基础知识

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. HP服务器RAID配置

    公司服务器硬盘空间不够了(HP的服务器),购买了10块硬盘,由于之前没有做过RAID,感觉很高大上的样子,就请教了HP的技术人员,技术人员发了两份文档,分别是DL380G7(DL580G7)和DL38 ...

  5. 关于Hibernate的总结

    主键的生成策略: * increment      :是由Hibernate完成的自动增长.(不是数据库底层的自动增长的方式.) * select  max(id) from  customer * ...

  6. 函数textread

    函数textread可以按列读取ascii 文件中的元素,每一列中可能含有不同的数据类型.这函数读取其他程序生成的数据表时非常地有用. 实际应用中也要经常要读取txt文件,这个时候就需要用到强大的te ...

  7. Yii2查询语句使用不等于号

    Yii2 Active Record查询条件使用不等于号,需要使用到 operator format: [operator, operand1, operand2, ...] 运算符格式: [运算符, ...

  8. Android 常见adb命令

    1.  查看所有已链接的设备 命令: adb devices   例: C:\Users\laiyu>adb devices List of devices attached 5d3b5aac  ...

  9. 通过样式调整input 中password text默认长度

    原文出处 <input >标签内的type分别为password和text时其默认长度和宽度不一致,而在做登陆框时往往需要将它们的长度和宽度设置一致.如下的方法可以通过css控制使其一致: ...

  10. Margin的垂直外边距问题

    做练习的时候遇到一个margin的问题,代码结构如下,给父元素body中的子元素div设置了margin:50px auto;本来我是想让子元素div距离父元素上边拉开50个像素,结果却是子元素div ...