Azure Logic App中如何将XML内容存入字符串并提交至SOAP端点
在Azure Logic App中实现JSON转XML并以字符串提交至SOAP端点的方案
步骤1:JSON转换为XML(优化建议)
直接使用Logic App内置的JSON to XML操作,传入HTTP触发的JSON数据即可完成基础转换。如果需要严格匹配指定的XML模板结构:
- 提前定义好XML的XSD Schema,转换时指定该Schema,确保生成的XML完全符合模板格式;
- 简单场景下,也可以用Compose操作结合表达式手动拼接XML结构,精准控制节点内容。
步骤2:将XML内容存入字符串变量(关键解决方法)
你之前设置变量失败的核心问题是未将XML对象转为字符串格式,正确操作如下:
- 在Logic App的「变量」面板创建一个字符串类型的变量(例如命名为
OrderXmlString); - 在JSON转XML操作完成后,添加「设置变量」操作;
- 将变量的值通过表达式设置为XML转换结果的字符串形式:
如果是从文件读取XML模板(如OneDrive/SharePoint),同样用string(body('JSON_to_XML'))string(body('读取文件内容'))将文件内容转为字符串后赋值给变量。
步骤3:提交至SOAP端点(优化建议)
使用HTTP操作完成SOAP请求提交:
- 请求方法选择
POST,填写SOAP端点的URL; - 构建请求体时,将
<xml>标签的内容替换为字符串变量@{variables('OrderXmlString')},完整请求体示例:<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <addOrderSoapIn> <id></id> <xml>@{variables('OrderXmlString')}</xml> </addOrderSoapIn> </soap:Body> </soap:Envelope> - 请求头添加
Content-Type,值设为text/xml; charset=utf-8,匹配SOAP端点的格式要求。
内容的提问来源于stack exchange,提问作者Seb
相关产品推荐
相关产品推荐

