首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果-else条件在.xslt文件中在骡子中

如果-else条件在.xslt文件中在骡子中
EN

Stack Overflow用户
提问于 2013-02-05 08:17:45
回答 1查看 814关注 0票数 0

在MULE服务器3.3.0中的configuration.xml中,我将MULE_REMOTE_CLIENT_ADDRESS传递给.xslt文件,下面我复制了代码:

代码语言:javascript
运行
复制
<logger 
  message="#[message.inboundProperties['MULE_REMOTE_CLIENT_ADDRESS']]" 
  level="INFO" doc:name="Logger"/>

若要将IP地址传递给XSLT,请将其存储在变量中并传递该变量。

代码语言:javascript
运行
复制
<set-variable 
  variableName="remoteClientAddress" 
  value = "#[message.inboundProperties['MULE_REMOTE_CLIENT_ADDRESS']]"/>

将其传递给XSLT,如下所示:

代码语言:javascript
运行
复制
<xm:xslt-transformer xsl-file="xsltFileName.xslt">
  <xm:context-property 
    key="remoteClientAddress" 
    value="#[remoteClientAddress]"/>
</xm:xslt-transformer>

在我的XSLT中,声明了param变量。

代码语言:javascript
运行
复制
<xsl:param  name="remoteClientAddress" />

然后将此变量用作

代码语言:javascript
运行
复制
<xsl:value-of select="$remoteClientAddress" />

现在,我想在.xslt文件中检查.xslt,如果它等于特定的ip_address,那么我可以更改我的ip_address(WSDL)文件,如果它不等于,那么在我的ip_address(WSDL)文件中什么都不会发生。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-05 08:52:02

基于您之前的文章,我的理解是,如果此匹配为真,则希望省略输入XML的特定部分。在这种情况下,以下内容应该能够完成(当添加到现有XSLT中时):

代码语言:javascript
运行
复制
<xsl:template match="wsdl:operation[@name = 'GetISD']">
   <xsl:variable name="rcaTrimmed" 
          select="substring-before(substring-after($remoteClientAddress, '/'), ':')" />
   <xsl:if test="$rcaTrimmed != '123.12.12.123'">
      <xsl:copy>
         <xsl:apply-templates select="@* | node()" />
      </xsl:copy>
   </xsl:if>
</xsl:template>

这只在$remoteClientAddress不等于指定地址的情况下才包括该操作。

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

https://stackoverflow.com/questions/14702891

复制
相关文章

相似问题

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