python3 xml.etree.ElementTree.ElementTree类

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)

 

posted @ 2023-05-07 10:44  挖洞404  阅读(60)  评论(0编辑  收藏  举报