python的lxml模块封装xml

#!/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()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值