python解析xml文件

ET.find(path[, namespaces=D])

This method is used to find a specific single element in the document. It is essentially equivalent to calling the .find()method on the document's root element;

<country name="chinese">

>>> for child in root:
...   print child.tag, child.attrib
child.tag 是标签项(country), child.attrib 是标签的名字(chinese)

    root = ElementTree.fromstring(text)



    # 获取element的方法  
    # 1 通过getiterator   
    infra_node = root.getiterator("virtual-infrastructure")
    #for node in lst_node:  
     #   print_node(node)  


    # 2通过 getchildren   Deprecated since version 2.7:  Use  list(elem)  or iteration
    lst_node_child = infra_node[0].getchildren()[0]
    print_node(lst_node_child)


    # 3 .find方法  
    node_find = root.find('address')
    #print_node(node_find)  


    #4. findall方法  
    node_findall = root.findall("virtual-infrastructure/vm")[0]

    #print_node(node_findall) 


for elem in tree.iter(tag='branch'):
...   print elem.tag, elem.attrib

写xml element    

def _add_rm_elem(self, build_odpx):

        ET.register_namespace('', URL)
        ET.register_namespace('xsi', XSI)
        ET.register_namespace('schemaLocation', SCHEMAL)
        root = ET.parse(build_odpx)
        build_elem = root.find('{}build'.format(_XML_NS))
        process_elem = build_elem.find('{}process'.format(_XML_NS))
        rm_folders = []
        for exe_elem in process_elem.findall('{}execute'.format(_XML_NS)):
            if "mkdir" in exe_elem.text:
                rm_folder = exe_elem.text.replace("mkdir", "rm -rf")
                rm_folders.append(rm_folder)
        for rm_folder in rm_folders:
            element = ET.Element("execute")
            element.text = rm_folder
            process_elem.append(element)
        root.write(build_odpx, encoding="utf-8",xml_declaration=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值