在Anypoint studio中,我使用XSLT-TRANSFORMER来转换xml文档,其中我必须传递一些参数值,即一组字符串。
这是我正在尝试的代码。如果在XSLT中使用这些值,我的XSLT转换就能正常工作,但当我将这些参数外部化时就不行了。
XSLT1.xsl
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<xsl:output method="xml" omit-xml-declaration="yes" media-type="string" encoding="UTF-8" indent="yes"/>
<xsl:param name="nreOrderType" select="'GD90','GD91','GD92'"/>
<xsl:template match="/">
<xsl:element name="test">
<xsl:value-of select="'GD90' = ($nreOrderType)"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>XSLT2.xsl
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<xsl:output method="xml" omit-xml-declaration="yes" media-type="string" encoding="UTF-8" indent="yes"/>
<xsl:param name="nreOrderType"/>
<xsl:template match="/">
<xsl:element name="test">
<xsl:value-of select="'GD90' = ($nreOrderType)"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>在mule中传递参数
{nreOrderType: "'GD90','GD91','GD92'"}预期输出:
<test>true</test>发布于 2019-11-22 04:04:43
一种解决方案是将字符串集作为单个字符串传递,这是它们的连接,使用已知不会作为任何传递的字符串的子字符串出现的分隔符字符串。
例如的:
<xsl:param name="nreOrderType" select="'|value1|value2|value3|'"/>
然后使用检查另一个字符串是否为上述字符串之一:
contains($nreOrderType, concat('|', $myString, '|'))
https://stackoverflow.com/questions/58807374
复制相似问题