逻辑应用程序 - XML转换 - 禁止执行'document()'函数?

时间:2017-11-10 00:50:49

标签: xml azure xslt azure-logic-apps

我有一个用于Azure Logic App中的XML转换操作的XSLT 1.0映射。

XSLT模板代码:

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="some.uri" exclude-result-prefixes="my">
        <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />

    <xsl:variable name="status">
    <xsl:value-of select="job/status"/>
</xsl:variable>
<xsl:variable name="feedback">
    <xsl:value-of select="job/custom_fields/custom_field[name = 'Work Feedback Reason']/value"/>
</xsl:variable>


    <!-- Set mapping table  -->
        <my:map>
            <entry key="Incorrect">Missing Item</entry> 
            <entry key="Damaged">Damaged Item</entry> 
            <entry key="Defective">Defective Item</entry> 

        </my:map>
<xsl:template match="/">
        <root>
            <xsl:choose>
                <xsl:when test="$status = 'canceled'">
                    <feedback>
                        <xsl:value-of select="document('')/*/my:map/entry[@key=$feedback]"/>
                        <!-- <xsl:copy-of select="$feedbackReason"></xsl:copy-of> -->
                    </feedback>
                </xsl:when>
            </xsl:choose>
        </root>
    </xsl:template>


</xsl:stylesheet>

当我尝试在XML转换操作中运行它时,出现错误:

"body": {
    "Code": "InvalidXsltContent",
    "Message": "An error occurred while processing map. 'Execution of the 'document()' function was prohibited. Use the XsltSettings.EnableDocumentFunction property to enable it. An error occurred at (51,25).'",
    "Details": null,
    "InnerError": null

我是如何在逻辑应用程序XML转换操作中设置XsltSettings.EnableDocumentFunction的?

1 个答案:

答案 0 :(得分:0)

好像你没有正确使用document()。它的目的是加载外部Xml以用于当前转换。

虽然文档('')应该加载当前文档,但这不是必需的。你尝试过使用过吗??