若要将IP">
在MULE服务器3.3.0中的configuration.xml中,我将MULE_REMOTE_CLIENT_ADDRESS传递给.xslt文件,下面我复制了代码:
<logger
message="#[message.inboundProperties['MULE_REMOTE_CLIENT_ADDRESS']]"
level="INFO" doc:name="Logger"/>
若要将IP地址传递给XSLT,请将其存储在变量中并传递该变量。
<set-variable
variableName="remoteClientAddress"
value = "#[message.inboundProperties['MULE_REMOTE_CLIENT_ADDRESS']]"/>
将其传递给XSLT,如下所示:
<xm:xslt-transformer xsl-file="xsltFileName.xslt">
<xm:context-property
key="remoteClientAddress"
value="#[remoteClientAddress]"/>
</xm:xslt-transformer>
在我的XSLT中,声明了param变量。
<xsl:param name="remoteClientAddress" />
然后将此变量用作
<xsl:value-of select="$remoteClientAddress" />
现在,我想在.xslt文件中检查.xslt,如果它等于特定的ip_address,那么我可以更改我的ip_address(WSDL)文件,如果它不等于,那么在我的ip_address(WSDL)文件中什么都不会发生。
我该怎么做呢?
发布于 2013-02-05 00:52:02
基于您之前的文章,我的理解是,如果此匹配为真,则希望省略输入XML的特定部分。在这种情况下,以下内容应该能够完成(当添加到现有XSLT中时):
<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
不等于指定地址的情况下才包括该操作。
https://stackoverflow.com/questions/14702891
复制