python批量生成xml文件
from xml.dom.minidom import Document
# import xml.dom.minidom
class XmlMaker:
def __init__(self,txtpath,xmlpath):
self.txtPath = txtpath
self.xmlPath = xmlpath
self.txtList = []
def readtxt(self):
txtfile = open(self.txtPath,"rb")
self.txtList = txtfile.readlines()
for i in self.txtList:
oneline = i.strip().split(" ")
if len(oneline) != 5:
print("TxtError")
def makexml(self):
doc = Document()
orderpack = doc.createElement("OrderPack")
doc.appendChild(orderpack)
objecname = "Order"
for i in self.txtList:
oneline = i.strip().split(" ")
objectE = doc.createElement(objecname)
objectE.setAttribute("number",oneline[0])
objectcontent = doc.createElement("Content")
objectcontenttext = doc.createTextNode(oneline[1])
objectcontent.appendChild(objectcontenttext)
objectE.appendChild(objectcontent)
objectresult = doc.createElement("Result")
objectresulttext = doc.createTextNode(oneline[2])
objectresult.appendChild(objectresulttext)
objectE.appendChild(objectresult)
objectappname = doc.createElement("AppName")
objectappnametext = doc.createTextNode(oneline[3])
objectappname.appendChild(objectappnametext)
objectE.appendChild(objectappname)
objectdelay = doc.createElement("Delay")
objectdelaytext = doc.createTextNode(oneline[4])
objectdelay.appendChild(objectdelaytext)
objectE.appendChild(objectdelay)
orderpack.appendChild(objectE)
f = open(self.xmlPath, 'w')
doc.writexml(f, indent='\t', newl='\n', addindent='\t', encoding='gbk')
f.close()
if __name__ == "__main__":
read =XmlMaker("test.txt","host_security_interface6.xml")
read.readtxt()
read.makexml()
print(read.txtPath)
for i in read.txtList:
print(i)
文件text.txt内容:
0 命令0 结果0 app名0 延迟0
1 命令1 结果1 app名1 延迟1
2 命令2 结果2 app名2 延迟2
3 命令3 结果3 app名3 延迟3
4 命令4 结果4 app名4 延迟4
5 命令5 结果5 app名5 延迟5
【转】https://blog.csdn.net/weixin_41084236/article/details/83107237
扩展:
实现变量循环赋值,批量生成200个xml文件。
浙公网安备 33010602011771号