首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT compare参数将字符串值的外部集合转换为字符串?

XSLT compare参数将字符串值的外部集合转换为字符串?
EN

Stack Overflow用户
提问于 2019-11-12 03:17:13
回答 1查看 69关注 0票数 0

在Anypoint studio中,我使用XSLT-TRANSFORMER来转换xml文档,其中我必须传递一些参数值,即一组字符串。

这是我正在尝试的代码。如果在XSLT中使用这些值,我的XSLT转换就能正常工作,但当我将这些参数外部化时就不行了。

XSLT1.xsl

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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中传递参数

代码语言:javascript
复制
{nreOrderType: "'GD90','GD91','GD92'"}

预期输出:

代码语言:javascript
复制
<test>true</test>
EN

回答 1

Stack Overflow用户

发布于 2019-11-22 04:04:43

一种解决方案是将字符串集作为单个字符串传递,这是它们的连接,使用已知不会作为任何传递的字符串的子字符串出现的分隔符字符串。

例如的

<xsl:param name="nreOrderType" select="'|value1|value2|value3|'"/>

然后使用检查另一个字符串是否为上述字符串之一:

contains($nreOrderType, concat('|', $myString, '|'))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58807374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档