在 configuration.xml 文件中,我实现了一个发布 wsdl 的流程,在此过程中我放置了一个返回客户端 IP 地址的记录器。这是我的代码:
<logger message="#[groovy:message.getInboundProperty('MULE_REMOTE_CLIENT_ADDRESS')]" level="INFO" doc:name="Logger"/>
现在我想将 ip 地址传输(传递)到我的 .xslt 文件?我该怎么做?
如果您使用的是 Mule 3.3,则可以使用MEL并简化 logger 语句,如下所示:
<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']]"/>
用记录仪显示
<logger message="Remote client address is------> #[remoteClientAddress]" level="INFO" doc:name="Logger"/>
将其传递给XSLT
:
<xm:xslt-transformer xsl-file="xsltFileName.xslt">
<xm:context-property key="remoteClientAddress" value="#[remoteClientAddress]"/>
</xm:xslt-transformer>
在你的XSLT
,声明一个参数变量
<xsl:param name="remoteClientAddress" />
然后将此变量用作
<xsl:value-of select="$remoteClientAddress" />
对于与正确提取 IP 地址相关的问题,请使用 XSLT 函数,例如
substring-before() , substring-after() and tokenize() ( in XSLT 2.0)