XML模块解析tomcat配置文件

可参考官网https://github.com/python/cpython/blob/3.6/Lib/xml/etree/ElementTree.py

XML包括tag,attrib,text

遍历查看

import xml.etree.ElementTree as ET
tree = ET.parse("server.xml")
root = tree.getroot()
print(root.tag)

for child in root:
    print(child.tag, child.attrib)
    for i in child:
        print(i.tag, i.attrib)
        for n in i:
            print (n.tag,n.attrib)
            for m in n:
                print(m.tag, m.attrib)

 

修改配置(属性修改,新增也可以用set)

import xml.etree.ElementTree as ET
tree = ET.parse("server.xml")
root = tree.getroot()
print(root.tag)

for node in root.iter('Connector'):
    protoco=node.get('protocol')
    if protoco=='HTTP/1.1':
        node.set('port','8080')
        print (node.tag,node.attrib)
tree.write("server.xml") #重新生成配置文件

新增标签

import xml.etree.ElementTree as ET
tree = ET.parse("server.xml")
root = tree.getroot()for node in root.iter('Service'):
    name=ET.Element("Connector", attrib={"enrolled": "yes"})
    node.insert(1,name)
tree.write("server_new.xml")

 

 

删除配置

删除标签
import xml.etree.ElementTree as ET
tree = ET.parse("server.xml")
root = tree.getroot()
print(root.tag)

for node in root.findall('Service'):
    for i in node.findall('Connector'):
        protoco=i.get('protocol')
        if protoco=='HTTP/1.1':
            node.remove(i) #从node列表中删除
tree.write("server_new.xml")
#方法二
import xml.etree.ElementTree as ET
tree = ET.parse("server.xml")
root = tree.getroot()
print(root.tag)

for node in root:
    for i in  node:
        pro=i.attrib.get('protocol')
        if pro=='AJP/1.3':
            node.remove(i)
tree.write('server_new.xml,encoding='utf-8')
删除属性(可以用attrib方法获取属性字典,再用字典方法操作)
import xml.etree.ElementTree as ET
tree = ET.parse("server.xml")
root = tree.getroot()
print(root.tag)

for node in root:
    for i in  node:
        pro=i.attrib.get('protocol')
        if pro=='HTTP/1.1':
            i.attrib.pop('connectionTimeout')
tree.write("server_new.xml")

 缩进创建可参考https://www.cnblogs.com/pangguoping/p/5615930.html

posted @ 2018-02-05 17:48  林夕之风  阅读(315)  评论(0)    收藏  举报