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

posted on 2019-06-18 10:05  lydstory  阅读(1110)  评论(0编辑  收藏  举报

导航