如何将记录器消息值传递给mule中的.xslt文件

时间:2013-02-03 06:52:42

标签: xml xslt xsd wsdl mule

在configuration.xml文件中,我实现了一个用于发布wsdl的流程,在我放置一个返回客户端IP地址的记录器的过程中。这是我的代码:

<logger message="#[groovy:message.getInboundProperty('MULE_REMOTE_CLIENT_ADDRESS')]" level="INFO" doc:name="Logger"/>

现在我想将(传递)ip地址传输到我的.xslt文件?我该怎么办?

2 个答案:

答案 0 :(得分:1)

如果您使用的是Mule 3.3,则可以使用MEL并简化记录器语句,如下所示:

<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 as:

   <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" />

答案 1 :(得分:0)

对于与正确提取IP地址相关的问题,请使用XSLT函数,如

 substring-before() , substring-after()  and tokenize() ( in XSLT 2.0)