Python 标准库之 xml.etree.ElementTree
tag:string对象,表示数据代表的种类,当为节点时为节点名称。
tag:string对象,表示数据代表的种类,当为节点时为节点名称。
text:string对象,表示element的内容。
attrib:dictionary对象,表示附有的属性。
tail:string对象,表示element闭合之后的尾迹。
若干子元素(child elements)。
try: import xml.etree.cElementTree as ET except ImportError: import xml.etree.ElementTree as ET
<?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank>1</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor name="Austria" direction="E"/> <neighbor name="Switzerland" direction="W"/> </country> <country name="Singapore"> <rank>4</rank> <year>2011</year> <gdppc>59900</gdppc> <neighbor name="Malaysia" direction="N"/> </country> <country name="Panama"> <rank>68</rank> <year>2011</year> <gdppc>13600</gdppc> <neighbor name="Costa Rica" direction="W"/> <neighbor name="Colombia" direction="E"/> </country> </data>
>>> import xml.etree.cElementTree as ET >>> tree = ET.ElementTree(file='doc1.xml') #载入数据 >>> root = tree.getroot() #获取根节点 <Element 'doc' at 0x11eb780>
root = ET.fromstring(country_data_as_string)
>>> for child in root: ... print child.tag, child.attrib ... country {'name': 'Liechtenstein'} country {'name': 'Singapore'} country {'name': 'Panama'}
>>> root[0][1].text '2008'
>>> root.findall("./country/neighbor") [<Element 'neighbor' at 0x14fa0f0>, <Element 'neighbor' at 0x14fa150>, <Element 'neighbor' at 0x14fa3f0>, <Element 'neighbor' at 0x14fa6c0>, <Element 'neighbor' at 0x14fa750>]
for event, elem in ET.iterparse(sys.argv[2]): if event == 'end': if elem.tag == 'location' and elem.text == 'Zimbabwe': count += 1 elem.clear() # discard the element
class xml.etree.ElementTree.Element(tag, attrib={}, **extra)
tag:string 元素代表的数据种类。
text:string 元素的内容。
tail:string 元素的尾形。
attrib:dictionary 元素的属性字典。
#针对属性的操作
clear() 清空元素的后代、属性、text和tail也设置为None。
get(key, default=None) 获取key对应的属性值,如该属性不存在则返回default值。
items() 根据属性字典返回一个列表,列表元素为(key, value)。
keys() 返回包含所有元素属性键的列表。
set(key, value) 设置新的属性键与值。
#针对后代的操作
append(subelement) 添加直系子元素。
extend(subelements) 增加一串元素对象作为子元素。#python2.7新特性
find(match) 寻找第一个匹配子元素,匹配对象可以为tag或path。
findall(match) 寻找所有匹配子元素,匹配对象可以为tag或path。
findtext(match) 寻找第一个匹配子元素,返回其text值。匹配对象可以为tag或path。
insert(index, element) 在指定位置插入子元素。
iter(tag=None) 生成遍历当前元素所有后代或者给定tag的后代的迭代器。#python2.7新特性
iterfind(match) 根据tag或path查找所有的后代。
itertext() 遍历所有后代并返回text值。
remove(subelement) 删除子元素。
class xml.etree.ElementTree.ElementTree(element=None, file=None) element如果给定,则为新的ElementTree的根节点。
_setroot(element):用给定的element替换当前的根节点。慎用。
# 以下方法与Element类中同名方法近似,区别在于它们指定以根节点作为操作对象。
find(match)
findall(match)
findtext(match, default=None)
iter(tag=None)
iterfind(match)
parse(source, parser=None) 装载xml对象,source可以为文件名或文件类型对象
getroot() 获取根节点
write(file, encoding=“us-ascii”, xml_declaration=None, default_namespace=None,method=“xml”)
ET.Comment(text=None)
ET.dump(elem)
ET.fromstring(text)
ET.fromstringlist(sequence, parser=None)
ET.iselement(element)
ET.iterparse(source, events=None, parser=None)
ET.parse(source, parser=None)
ET.ProcessingInstruction(target, text=None)
ET.register_namespace(prefix, uri)
ET.SubElement(parent, tag, attrib={}, **extra)
ET.tostring(element, encoding="us-ascii", method="xml")
ET.tostringlist(element, encoding="us-ascii", method="xml")
ET.XML(text, parser=None)
14. 从字符串常量解析出xml片段,同时返回一个字典,用以映射element的id到其自身。
ET.XMLID(text, parser=None)
<div class="clear"></div>
<div id="post_next_prev">
<a href="https://www.cnblogs.com/insane-Mr-Li/p/9952827.html" class="p_n_p_prefix">« </a> 上一篇: <a href="https://www.cnblogs.com/insane-Mr-Li/p/9952827.html" title="发布于 2018-11-13 16:16">python configparser模块</a>
<br>
<a href="https://www.cnblogs.com/insane-Mr-Li/p/9964249.html" class="p_n_p_prefix">» </a> 下一篇: <a href="https://www.cnblogs.com/insane-Mr-Li/p/9964249.html" title="发布于 2018-11-15 16:16">python的ConfigParser模块</a>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190919135954466.jpg)