#!/usr/bin/env python #-*-coding:utf-8 -*- # AUTHOR: J # DATE: 2019/9/12 from lxml import etree def test(): #################################### # Element是一个列表 #################################### root = etree.Element("root") #添加tag名为root 的节点,root是一个列表 print(root.tag) #打印tag名 root.append(etree.Element("child1")) #添加子节点 root.append(etree.Element("child2")) print(etree.tostring(root,pretty_print=True)) #格式化展示 print(len(root))# 列表的长度 2 print(root[0].tag)# 读取列表的节点名 print(root.index(root[1]))# 读取列表的索引 1 print(root[:])# 列表的切片 [<Element child1 at 0x237f01ff148>, <Element child2 at 0x237ef47f0c8>] print("child1是否有子节点:",etree.iselement(root[0].tag))#判断child1否有子节点,即子节点列表是否为空 #################################### # 给分支添加属性{attribute},给分支添加内容 element.text #################################### attribute={'name':"tree sir",'age':"81"} child3 = etree.Element("child3", attribute) child3.text="北京" root.append(child3) print(etree.tostring(root, pretty_print=True)) # 格式化展示 #<root>\n <child1/>\n <child2/>\n <child3 age="81" name="tree sir"/>\n</root> #################################### # 将2级节点变成3级节点(改变节点从属) #################################### child_father = etree.Element("two_tag") child_father.append(child3) root.append(child_father) print(etree.tostring(root, method="xml", xml_declaration=True, standalone=True, encoding="utf-8",pretty_print=True).decode("utf-8")) #################################### # lxml封装总结 #################################### ''' 1、创建节点用 etree.Element('',{}) 方法,第1个参数是节点名,第2个参数是 属性 2、如果要给某个节点添加内容,就用.text方法 3、如果要将1个节点变成另外一个节点的子节点,就用 父节点.append(子节点) 4、如果要打印字符串就用etree.tostring(父节点,method=,xml_declaration,standlone,encoding).decode() 后面的pretty_print是转换格式 ''' test()
python的lxml模块封装xml
最新推荐文章于 2024-08-30 20:41:27 发布