#xpath SpEL 函数

Spring Integration 从 3.0 版本开始,提供了内置的 #xpath SpEL 函数,它调用 XPathUtils.evaluate(…​) 静态方法。 此方法委托给 org.springframework.xml.xpath.XPathExpression。 以下列表展示了一些使用示例:

<transformer expression="#xpath(payload, '/name')"/>

<filter expression="#xpath(payload, headers.xpath, 'boolean')"/>

<splitter expression="#xpath(payload, '//book', 'document_list')"/>

<router expression="#xpath(payload, '/person/@age', 'number')">
    <mapping channel="output1" value="16"/>
    <mapping channel="output2" value="45"/>
</router>

#xpath() 还支持一个可选的第三个参数,用于转换 XPath 评估的结果。 它可以是字符串常量(stringbooleannumbernodenode_listdocument_list)之一,也可以是 org.springframework.xml.xpath.NodeMapper 实例。 默认情况下,#xpath SpEL 函数返回 XPath 评估结果的 String 表示。

要启用 #xpath SpEL 函数,您可以将 spring-integration-xml.jar 添加到类路径中。 您无需声明 Spring Integration XML 命名空间中的任何组件。

有关更多信息,请参阅 “Spring 表达式语言 (SpEL)”。