在过滤器中介器中使用XPath函数
在代理的插入序列中,我使用中的xpath查询进行过滤。但是我想使用XPath函数,比如在过滤器中介器中使用XPath函数,xpath,wso2,wso2esb,synapse,Xpath,Wso2,Wso2esb,Synapse,在代理的插入序列中,我使用中的xpath查询进行过滤。但是我想使用XPath函数,比如exists()或count()。但这不起作用,总是会产生一个异常。以下是我的例子: <filter xpath="count($body/myElement)>2"> <drop/> </filter> 如何使这些函数工作?您可以使用xpath函数和筛选器中介来修改synapse段,如下所示 <filter xpath="fn:exists($body/my
exists()
或count()
。但这不起作用,总是会产生一个异常。以下是我的例子:
<filter xpath="count($body/myElement)>2">
<drop/>
</filter>
如何使这些函数工作?您可以使用xpath函数和筛选器中介来修改synapse段,如下所示
<filter xpath="fn:exists($body/myElement)">
<drop/>
</filter>
您可以参考示例156:服务集成,并指定[1]中提供的接收序列,以了解更多示例
<filter xpath="fn:number(get-property('SIMPLE_SER_AMT')) > fn:number(get-property('SECURE_SER_AMT'))">
[1]
谢谢,,
Dharshana对于那些想知道如何使用fn:count的人,您可以尝试:
这对我来说很有用。这只是解决了exists()函数-但是如何在xpath中进行count()-这个函数也不起作用…fn:number也不起作用!我得到了与count()或exists()相同的异常。我测试了样本156。它与number()函数配合良好。请发布您的synapse,看看哪里出错了。您的操作绝对正确。我发现中的xpath=”“不支持很多函数。由于我遇到了may first问题,我现在在属性表达式中执行整个逻辑。因此,您甚至可以在属性内执行number()。
<filter xpath="fn:number(get-property('SIMPLE_SER_AMT')) > fn:number(get-property('SECURE_SER_AMT'))">