我有一个用于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的?
答案 0 :(得分:0)
好像你没有正确使用document()。它的目的是加载外部Xml以用于当前转换。
虽然文档('')应该加载当前文档,但这不是必需的。你尝试过使用过吗??