Python3 xml解析模块xml.etree.ElementTree之ElementTree

ElementTree是xml解析模块xml.etree.ElementTree的类,表示整个xml文档。ElementTree还提供了对标准XML序列化和反序列化的支持。

初始化

ElementTree(element=None, file=None)

element:可选的,根元素节点。element只能是None或者Element实例(具有tag属性)。

file:可选的,用于初始化树内容的文件名或文件句柄。

函数

getroot:返回树的根元素。

_setroot(element):替换树的根元素。此函数会丢弃树当前的内容,要谨慎使用。element为Element实例。

parse(source, parser=None):将外部xml加载到树中。source为文件名或文件句柄。parser是可选的解析器实例,默认为XMLParser解析器。函数返回树的根元素,如果解析器无法解析文档,则会产生ParseError错误。

iter(tag=None):创建并返回根元素的迭代器。迭代器按文档顺序遍历此树中的所有元素。tag是要遍历的标签名,默认返回所有标签。

getiterator(tag=None):Python3.2起弃用此函数,用iter替代。

find(path, namespaces=None):查找并返回第一个匹配的元素,如果未找到则返回None。path为标签名或xpath字符串。namespaces是一个命名空间前缀到全名的映射的字典,默认为None。此函数实际上是调用的Element的find方法。

findtext(path, default=None, namespaces=None):查找并返回第一个匹配的元素的文本。path为标签名或xpath字符串。default为当找不到path指定的元素时返回的默认文本,namespaces是一个命名空间前缀到全名的映射的字典,默认为None。此函数实际上是调用的Element的findtext方法。

findall(path, namespaces=None):查找并返回包含所有匹配元素的列表,如果没有匹配元素则返回空列表。path为标签名或xpath字符串。namespaces是一个命名空间前缀到全名的映射的字典,默认为None。此函数实际上是调用的Element的findall方法。

iterfind(path, namespaces=None):Python3.2新增,与findall功能相同,只不过返回的是generator实例而不是列表。此函数实际上是调用的Element的iterfind方法。

write(file,encoding=None,xml_declaration=None,default_namespace=None,method=None,*,short_empty_elements=True):将树做为xml写入文件。file为文件名或文件句柄。encoding为输出文件编码,默认为us-ascii。xml_declaration为是否将XML声明添加到输出中。如果未指定此参数,且method为xml(默认)时,如果encoding不是US-ASCII、UTF-8或Unicode,则默认将XML声明添加到输出中。 default_namespace,设置默认XML命名空间。method为序列化方式,可选值为xml、html、text,默认为xml。short_empty_elements为Python3.4新增的参数,用于控制不包含任何内容的元素格式。如果为true,则会简写为一个自闭的标签,否则为一对开始结束标签。encoding决定了输出的格式,如果是unicode则为字符串,否则为二进制。如果file是一个文件句柄,则要注意两者是否相同。

你可能感兴趣的:(Python,ElementTree,xml解析,Python3)