常用函数
xml.etree.ElementTree.Comment(text=None)
该方法生成一个注释对象,注释内容是text。
xml.etree.ElementTree.dump(elem)
该方法将一个对象打印到标准输出。这个函数只用来调试(一般不把结果打印到标准输出)。
xml.etree.ElementTree.fromstring(text)
解析字符串text,生成一个Element实例。该方法等同于XML()。
xml.etree.ElementTree.fromstringlist(sequence, parser=None)
解析list,生成一个Element实例。
xml.etree.ElementTree.iselement(element)
判断element是否是一个合法的Element对象。
xml.etree.ElementTree.parse(source, parser=None)
解析文件内容,source是文件名,返回值是一个Element实例。
xml.etree.ElementTree.register_namespace(prefix, uri)
注册一个命名空间,prefix是命名空间前缀,uri是命名空间的uri。作用域为全局,注册后删除匹配到前缀或uri的元素。
xml.etree.ElementTree.SubElement(parent, tag, attrib={}, **extra)
创建子元素。parent是指定父元素,tag是子元素名称,attrib是元素属性(类型是dict)。
xml.etree.ElementTree.tostring(element, encoding=”us-ascii”, method=”xml”)
返回指定对象的字符串形式,其中method可以是”xml”、”html” 或 “text”
xml.etree.ElementTree.tostringlist(element, encoding=”us-ascii”, method=”xml”)
作用同tostring,返回结果为list,这里”“.join(tostringlist(element)) == tostring(element)
Element对象
属性
tag
用于标识元素的字符串
text、tail
text表示元素的开始标签和第一个子标签或结束标签或None之间的内容。tail表示元素的结束标签和下一个标签或None之间的内容。
例如
<a><b>1<c>2<d/>3</c></b>4</a>
上述代码中,a的text和tail都是None,b的text是1,tail是4,c的text是2,tail是None,d的text是None,tail是3。
attrib
元素的属性
函数
clear()
将Element对象重置,删除所有子元素,清空属性,text和tail都置为None。
get(key, default=None)
获取name为key的属性
append(subelement)
将subelement追加到指定元素的末尾
extend(subelements)
将subelements追加到指定元素,subelements是一个元素为element的list
find(match)
返回第一个匹配到match的子元素,match是tag名称或路径
findall(match)
返回所有匹配到match的子元素,match是tag名称或路径,返回结果是一个list
findtext(match, default=None)
返回第一个匹配到match的子元素的text,如果未匹配,返回default,如果匹配的元素没有text,则返回一个空字符串
insert(index, element)
在指定元素的指定位置插入一个子元素
iter(tag=None)
以当前元素为根元素,创建iterator,这个iterator可以遍历当前元素下的所有元素(深度优先),如果遍历过程中树结构变化,结果返回undefined
iterfind(match)
返回所有匹配到的子元素
itertext()
遍历当前元素及其全部子元素,返回text
remove(subelement)
删除子元素,该方法匹配元素对象,而不是tag
ElementTree对象
函数
_setroot(element)
替换根元素
find*(match)
find*(match)都等同与Element对象的同名方法
getroot()
获取根元素
write(file, encoding=”us-ascii”, xml_declaration=None, default_namespace=None, method=”xml”)
将ElementTree对象写入文件