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

Azure Logic App执行CSV转XML转换时忽略indent="yes"配置问题问询

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

我之前把BizTalk的XSLT迁移到Logic App时,也碰到过一模一样的问题——明明XSL里写了indent="yes",输出的XML还是挤成单行,BizTalk里正常运行的配置到Logic App就失效。其实这是因为Logic App的XSLT处理器默认做了性能优化,忽略了缩进配置,下面给你几个靠谱的解决办法:

方法1:调整XSLT的输出配置

有时候只写indent="yes"不够,得把输出配置写得更明确,让Logic App的处理器能识别到。把你的<xsl:output>节点改成下面这样:

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" standalone="no"/>

另外检查下XSLT里有没有全局的<xsl:strip-space elements="*"/>,如果有的话,可能会干扰缩进效果,要么删掉,要么只针对特定不需要保留空格的元素设置。

方法2:用Logic App内置的xml-format()表达式快速格式化

如果调整XSLT还是没效果,直接在转换之后加一个「Compose」动作,用内置表达式一键美化。在Compose的输入框里写:

@xml-format(body('XSLT_转换'))

这个表达式会自动给XML加上合适的缩进和换行,效果和Notepad++的格式化完全一样,简单又高效。

方法3:自定义Azure Function处理(复杂场景)

如果需要更灵活的格式化规则(比如自定义缩进空格数、处理特殊命名空间),可以写个轻量的Azure Function来处理。比如用C#写一个简单的格式化函数:

using System.Xml;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System.IO;
using System.Text;

public static class XmlFormatter
{
    [FunctionName("FormatXmlOutput")]
    public static string Run(
        [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        string xmlInput = new StreamReader(req.Body, Encoding.UTF8).ReadToEnd();
        var doc = new XmlDocument();
        doc.LoadXml(xmlInput);
        
        var stringWriter = new StringWriter();
        var xmlWriter = new XmlTextWriter(stringWriter)
        {
            Formatting = Formatting.Indented,
            Indentation = 2 // 自定义缩进的空格数
        };
        
        doc.WriteTo(xmlWriter);
        return stringWriter.ToString();
    }
}

然后在Logic App里添加「调用Azure Function」的动作,把XSLT转换后的XML传给这个函数,就能得到你想要的格式化结果了。

顺带说下为啥BizTalk里没问题:因为BizTalk的XSLT处理器默认启用了缩进输出,而Logic App为了减少传输体积、提升性能,默认关闭了这个选项,所以即使XSL里配置了也会被忽略。

内容的提问来源于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 13:27:49