Python生成拼接XML报文的两种实现方式详解

星野
星野
发布时间:2026-10-13 | 3人浏览过
原创

本文介绍使用Python生成XML报文的两种常见方法。第一种通过循环自增ID并拼接时间戳生成基础报文,适用于MQ接口发送场景;第二种基于预定义模板,利用列表遍历和字符串替换功能生成多行XML节点。代码包含完整实现逻辑,可直接参考用于实际开发中的报文构造需求。

近期工作中遇到临时需求,需要通过MQ接口发送XML格式的报文。为此编写了一个简单的Python程序来处理报文生成任务。

实现方式之一是通过循环自增订单ID,并将当前时间格式化后拼接,从而生成包含多个item节点的XML报文结构。

具体代码逻辑见Test_001.py文件。该脚本首先初始化orderId为空字符串,然后遍历1到4的ID范围。在每次循环中,构建包含orderID和time标签的item节点,并将当前系统时间(格式为YYYY-MM-DD HH:MM:SS)填入time标签。所有item节点拼接后,外层包裹MbfBody标签,最终打印出完整的XML报文字符串。

# encoding=utf-8
import time
 
orderId = ''
s1= "\n"
#
for ID in range(1,5):
  item1 = "<item>" + \
      "<orderID>" + str(ID) + "</orderID>" + \
      "<time>" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + "</time>" + \
      "</item>"
 
  orderId+=item1
messge = "<MbfBody>" + orderId + "</MbfBody> "
print(messge)

另一种实现方式是基于预定义的XML模板进行字符串替换。首先定义一个包含多个字段值的字符串,按逗号分割为列表。接着定义一个XML模板字符串,其中包含VAR_XML、//MbfBody/value和COLUMN(VALUE,y)等占位符。通过自定义函数add_xml,遍历列表中的每个值,将其转换为大写,并在模板中进行两次小写替换和一次大写替换,生成对应的XML节点字符串。最后将所有节点字符串用换行符连接,返回最终的多行XML字符串结果。

#encoding=utf-8
 
# str=input("输入字段:")
str='lxs,hqq,lj,xc'
List=str.split(',')
 
# str_xml=input("输入替换的模板:")
str_xml='<step id="xml_set_xml_value" comment="value" isrun="true"><param id="xml">VAR_XML</param><param id="xpath">//MbfBody/value</param><param id="value">COLUMN(VALUE,y)</param></step>'
 
#列表追加,回车成多行
def add_xml(L):
  xml_list=[]
  s1= '\n' #回车换行符
  for value in L:
    VAULE=value.upper()
    xml= str_xml.replace('value',value,2).replace('VALUE',VAULE,1) #替换模板中的值为列表中的值,小写两次,大写一次
    xml_list.append(xml)
  xml_str=s1.join(xml_list) #list 更新成str
  return xml_str
 
#字符串追加,一行
# def add_xml(L):
#   xml_list=''
#   for value in L:
#     VAULE=value.upper()
#     xml= str_xml.replace('value',value,2).replace('VALUE',VAULE,1) #替换模板中的值为列表中的值,小写两次,大写一次
#     xml_list+=xml
#   # xml_str=s1.join(xml_list) #list 更新成str
#   return xml_list
 
test=add_xml(List)
print(test)

以上介绍了Python生成拼接XML报文的两种示例方法,分别适用于自增ID拼接和模板替换场景。希望这些内容能为您提供参考,欢迎继续支持本站获取更多技术分享。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表