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

如何修改Azure PowerShell Function App格式化Logic App生成的单行XML文件

实现XML美化格式化的配置方案

一、修改Function App PowerShell代码

以下是调整后的可直接使用的代码,支持从Logic App传入原始单行XML内容,返回格式化后的XML,不需要额外配置存储访问权限,易用性更高:

using namespace System.Net

# 输入绑定通过参数块传入
param($Request, $TriggerMetadata)

Write-Host "PowerShell HTTP触发函数开始处理XML格式化请求"

# 从请求体读取原始XML内容
$rawXml = $Request.Body.RawXml

if (-not $rawXml) {
    Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::BadRequest
        Body = "请求未携带RawXml参数,请传入需要格式化的XML内容"
    })
    exit
}

try {
    # 转换为XML对象自动格式化
    $xml = [xml]$rawXml
    $stringWriter = New-Object System.IO.StringWriter
    $xml.Save($stringWriter)
    $formattedXml = $stringWriter.ToString()

    Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body = $formattedXml
        ContentType = "application/xml"
    })
}
catch {
    Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::InternalServerError
        Body = "XML格式化失败,错误信息:$($_.Exception.Message)"
    })
}

如果你坚持采用传入文件路径读写存储的方案,需要先给Function App的系统分配托管身份,授予对应存储账户的「Blob数据参与者」权限,再在代码中引入Azure存储模块,根据传入的存储账户、容器、Blob路径参数读写文件即可。

二、Logic App 配置步骤

  • 在Logic App中生成单行XML的动作之后,新增「调用Azure函数」动作,选择你创建的ParseXML函数
  • 配置函数的请求方法为POST,请求体设置为:{"RawXml": "@{此处替换为你生成XML的动作输出}"}
  • 调用函数完成后,新增「创建Blob」(或对应保存文件的动作),将函数返回的内容作为文件内容保存到目标路径即可

注意事项

  • 如果原始XML存在特殊字符或格式错误,会导致格式化失败,可在Function代码中增加异常捕获逻辑处理这类场景
  • 如需处理GBK等非UTF8编码的XML文件,可在转换为XML对象时指定对应编码,避免乱码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:15:00