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文件。