ElementTree生成xml文件

代码:

def buildNewsXmlFile():
    # 设置一个新节点,并设置其标签为root
    root = ET.Element("root")

    # 在root下新建两个子节点,设置其名称分别为sina和chinabyte
    sina = ET.SubElement(root, "sina")
    chinabyte = ET.SubElement(root, "chinabyte")

    # 在sina下新建两个子节点,设置其节点名称分别为number和first
    sina_number = ET.SubElement(sina, "number")
    sina_number.text = "1"
    sina_first = ET.SubElement(sina, "first")
    sina_first.text = "http://roll.tech.sina.com.cn/internet_all/index_1.shtml"

    # 在chinabyte下新建两个子节点,设置其节点名称为number和first
    chinabyte_number = ET.SubElement(chinabyte, "number")
    chinabyte_number.text = "1"
    chinabyte_first = ET.SubElement(chinabyte, "first")
    chinabyte_first.text = "http://www.chinabyte.com/more/124566.shtml"

    # 将节点数信息保存在ElementTree中,并且保存为XML格式文件
    tree = ET.ElementTree(root) 
    # tree = ET.ElementTree(root,encoding='utf8')  后面加编码的话,会在生成的etree树最外层加上</xml ...的格式.
    tree.write("1111111111111.xml")

输出:

<root>
    <sina>
        <number>1</number>
        <first>http://roll.tech.sina.com.cn/internet_all/index_1.shtml</first>
    </sina>
    <chinabyte>
        <number>1</number>
        <first>http://www.chinabyte.com/more/124566.shtml</first>
    </chinabyte>
</root>

使用requests请求:

ats_xml_text = r'''<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdd="http://xml.fa-software.com/mycim/wsdd/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
     %s
</soapenv:Envelope>'''
def get_aoiDefectItem(date:dict):
    aoiDefect = ET.Element("aoiDefect")
    for key,value in date.items():
        el = ET.SubElement(aoiDefect, key)
        if isinstance(value,list):
            for i in value:
                aoiDefectItem = ET.SubElement(el, "aoiDefectItem")
                defectLocaton = ET.SubElement(aoiDefectItem, "defectLocaton")
                defectType = ET.SubElement(aoiDefectItem, "defectType")
                for key, value in i.items():
                    defectLocaton.text = key
                    defectType.text = value
        else:
            el.text = str(value)

    xmlstr=ET.tostring(aoiDefect)
    # print(xmlstr)
    a = ats_xml_text % xmlstr.decode() # 先解码拼接字符串
    return a
data_2 ={"aiResult": "OK",
        "result": "NG",
        "createTime": "2023-05-05 09:45:14",
        "eqptId": "666666666",
        "guiRoute": "D:/test/el/pic/LRR9057_8.png",
        "route": "D:/test/el/pic/LRR9057_8.png",
        "defects": {"隐": ["3-11", "4-10", "4-8", "5-11"], "痕": ["4-17", "4-13", "6-14"]},
        "aoiDefectItems": [{"隐": "3-11,4-10,4-8,5-11"}, {"痕": "4-17,4-13,6-14"}],
        "lotId": "LRR9057_8",
        "side": "B"
        }
data_ddd,b = get_aoiDefectItem(data_2)
data = data_ddd.encode('utf8') # 编码放入data中,requests的data不能传递字符串.
response = requests.request('post', url=url, data=data, headers=headers, timeout=5).text
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值