Azure 逻辑应用在转换 XML 时忽略 indent="yes"

Azure Logic App ignores indent="yes" when transforming XML

我正在使用 Azure Logic App 将 CSV 文件转换为 XML,一切最初都是在 BizTalk 中设置的,以生成相关的 XSD 和 XSL,它们运行得非常好。但是当我使用 Azure 逻辑应用程序时,输出 XML 文件全部在一行中,即使我确保它在 XSL 文件中有 indent="yes"

我知道我可以使用 notepad++ 漂亮地打印结果并保存文件,但肯定有一种方法可以在 Logic App 中自动执行此操作?

我在使用 XSLT 3.0 时设法缩进,例如stylesheet/map 正在做

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="3.0"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  exclude-result-prefixes="#all"
  expand-text="yes">

  <xsl:output method="xml" indent="yes"/>

  <xsl:mode on-no-match="shallow-copy"/>

  <xsl:template match="/" name="xsl:initial-template">
    <xsl:next-match/>
    <xsl:comment xmlns:saxon="http://saxon.sf.net/">Run with {system-property('xsl:product-name')} {system-property('xsl:product-version')} {system-property('Q{http://saxon.sf.net/}platform')}</xsl:comment>
  </xsl:template>

</xsl:stylesheet>

然后请求

<root><item>a</item><item>b</item></root>

转化为输出

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <item>a</item>
   <item>b</item>
</root>
<!--Run with SAXON HE 9.8.0.8 -->

我不知道他们如何 运行 XSLT 1.0 处理器忽略 xsl:output 设置,这似乎是管道中的缺陷或怪癖。

对于那些感兴趣的人,我在逻辑应用程序中找到了一个设置,只需 select 应用 XSLT 输出属性就可以了,也不需要验证!