1、介绍
对应整个xml结构。
2、初始化
class ElementTree:
def __init__(self, element=None, file=None):
self._root = element # first node
if file:
self.parse(file)
- element,ElementTree.Element类型,即设置一个节点对象作为根节点
- file,str类型,xml文件路径,如果存在则进行解析
3、方法
(1)getroot
def getroot(self):
- 返回根节点,ElementTree.Element类型
(2)parse
def parse(self, source, parser=None):
- 解析
- source, str类型,表示待解析的xml文件路径
- parser,解析模式,可以不设置
(3)iter
def iter(self, tag=None):
- 对所有子节点迭代,遵循的是先从外到内,再从前到后
- 包括根节点本身
(4)find
def find(self, path, namespaces=None):
(5)findtext
def findtext(self, path, default=None, namespaces=None):
(6)findall
def findall(self, path, namespaces=None):
(7)iterfind
def iterfind(self, path, namespaces=None):
(8)write
def write(self, file_or_filename,
encoding=None,
xml_declaration=None,
default_namespace=None,
method=None, *,
short_empty_elements=True):
- 将本对象写入文件中
- encoding,str类型,即写入文件的编码,一般设为'utf-8'
- xml_declaration,bool类型,为True会在首行写入xml声明
3、parse函数
def parse(source, parser=None):
tree = ElementTree()
tree.parse(source, parser)
return tree
- 作用是解析成ElementTree对象
- source,可以是一个文件路径,str类型。也可以是一个文件对象
- parser,解析模式,非必要参数
4、使用
(1)创建并写入
# 创建树结构
root = ElementTree.Element('Root')
tree = ElementTree.ElementTree(root)
# 创建节点,节点名称,属性键值对
name = Element("name", {'id': 'id2', 'order': 'order2'})
# 节点的文本
name.text = "xiaoming"
age = Element("age")
age.text = "12"
gender = Element("gender")
gender.text = "男"
# 向一个元素中添加
root.append(name)
root.append(age)
name.append(gender)
# 树结构
tree.write("1.xml", encoding='utf-8', xml_declaration=True)
<?xml version='1.0' encoding='utf-8'?>
<Root><name id="id2" order="order2">xiaoming<gender>男</gender></name><age>12</age></Root>
(2)读取xml文件解析
xml = ElementTree.parse('1.xml')
root = xml.getroot()
for item in root.iter(tag=None):
print(item)
标签:xml,None,etree,self,ElementTree,root,def From: https://www.cnblogs.com/wd404/p/17379000.html