如何在 mule 中检查 NaN

How to check NaN in mule

如何在 mule 中使用 xpath3 检查 NaN 值。

我尝试这样做但结果不正确

#[xpath3('total',payload,'NUMBER')!='NaN'?xpath3('total',payload,'NUMBER'):0]

但不工作

如何检查 mule 中的 NaN 值?

尝试使用的实例,例如#[xpath3('total',payload,'NUMBER') is java.lang.Number ? xpath3('total',payload,'NUMBER') : 0]

基于进一步测试,使用以下示例:

<?xml version="1.0" encoding="UTF-8"?>
<data>
   <total>100</total>
</data>

我们可以利用isNaN()方法,因为有效载荷是java.lang.Double。因此我们可以使用以下 MEL:#[xpath3('//total',payload,'NUMBER').isNaN() ? 0 : xpath3('//total',payload,'NUMBER')]

可以通过以下简单流程进行测试:

<flow name="simpleFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
    <logger message="#[xpath3('//total',payload,'NUMBER').isNaN() ? 0 : xpath3('//total',payload,'NUMBER')]" level="INFO" doc:name="Logger"/>
</flow>

total 字段的值更改为非数字以用于测试目的,例如:<data><total>hundred</total></data>