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   lydstory  阅读(1116)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示