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 输出属性就可以了,也不需要验证!
我正在使用 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 输出属性就可以了,也不需要验证!