You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Logic App中CSV转XML输出单行XML的技术问题咨询

解决Azure Logic App中XSLT转换XML无缩进的问题

我之前碰到过好几个类似的案例,你在Visual Studio里能正常生成带缩进的XML,但到Azure Logic App里就变成单行,核心原因是XSLT处理器行为差异或者Logic App默认的输出压缩处理导致的,给你几个针对性的解决办法:

1. 优化XSLT的输出配置

Azure Logic App使用的是.NET的XslCompiledTransform处理器,它对缩进的触发条件比Visual Studio里的测试环境更严格。你需要在XSLT头部补充两个关键设置:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- 去除所有元素的多余空白,确保缩进逻辑能正常触发 -->
  <xsl:strip-space elements="*"/>
  <!-- 明确指定输出类型为XML并启用缩进 -->
  <xsl:output method="xml" indent="yes" encoding="utf-8"/>
  
  <!-- 你的CSV转XML转换逻辑 -->
</xsl:stylesheet>

这个配置能避免原始XML中的空白或命名空间干扰处理器的缩进生成,让格式化效果和Visual Studio里一致。

2. 用Logic App表达式强制格式化XML

如果优化XSLT后还是不行,可以在Transform XML动作之后添加一个Compose动作,用内置表达式直接格式化输出:
在Compose的输入框中填入以下表达式:

format-xml(outputs('Transform_XML'), true())

第二个参数true()表示启用缩进,这个函数会重新解析XML并生成带换行和缩进的格式,彻底解决单行问题。

3. 避免后续动作压缩内容

如果你把转换后的XML写入存储或发送到API,部分动作(比如「Create blob」)默认会以无格式方式保存内容。你可以:

  • 在存储动作的「Content type」字段设置为application/xml
  • 在HTTP请求头中添加Content-Type: application/xml; charset=utf-8
    这些设置能让接收端或存储服务识别XML类型,保留格式化后的结构。

内容的提问来源于stack exchange,提问作者tommyhmt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 11:22:35