背景:在开发过程中,产生一个增删改查保存XML文件的需求,在搜索比较好的解决方案的过程中,发现lxml库非常好用,于是自己写了几个接口。
代码如下:
# -*- coding:utf-8 -*-
from lxml import etree
class ParseXml(object):
def __init__(self, config):
parser = etree.XMLParser(remove_blank_text=True)
self.root = etree.XML(config, parser)
def addData(self, xpath, data, **kwargs):
rowData = self.root.xpath(xpath, **kwargs)
if not len(rowData) == 1:
return False
rowData[0].append(etree.Element('Param'))
last = len(rowData[0]) - 1
for k, v in data.items():
rowData[0][last].attrib[k] = v
return True
def deleteData(self, xpath, **kwargs):
rowData = self.root.xpath(xpath, **kwargs)
if not len(rowData) == 1:
return False
rowData[0].getparent().remove(rowData[0])
return Tr