I have a service in wso2 ei, which takes an expiration date which must be compared with the current date, if it passes the expiration date the service must respond expired. My idea is to transform it into time in unix or timestamp to be able to make the comparison, does anyone know how to do it in xpath? this is my code.
<property name="bodyExpirDate" expression="$body//values/expir_date" scope="default" type="STRING"/>
<property name="DateTimeNoww" expression="get-property("SYSTEM_DATE","yyyy-MM-dd'T'HH:mm:ss")" type="STRING"/>
<property name="todayFormatted" expression="get-property("SYSTEM_DATE", "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")" scope="default"/>
<filter xpath="get-property('DateTimeNoww') > get-property('bodyExpirDate')">
<then>
<payloadFactory media-type="json">
<format>{"Status":"Expirado","dateTimeNow":$1, "dateTimePrj":$2, "currentDateXpath":$3}</format>
<args>
<arg evaluator="xml" expression="get-property('DateTimeNoww')"/>
<arg evaluator="xml" expression="get-property('bodyExpirDate')"/>
<arg value="a"/>
</args>
</payloadFactory>
</then>
Edit: I cant do that, but i use this javascript code, but i cant call bodyExpirDate2 in my script
<property name="bodyExpirDate2" expression="string-length(concat(get-property('apos'),get-property('bodyExpirDate'),get-property('apos')))" scope="default"/>
<property name="DateTimeNoww" expression=" get-property("SYSTEM_DATE","yyyy-MM-dd'T'HH:mm:ss")" type="STRING"/>
<script language="js">
var mystringDate = mc.getProperty('bodyExpirDate2');
mystringDate = mystringDate.replace('T',' ');
mystringDate = mystringDate.replace(/\s/g, '');
var b = " ";
var position = 10;
var output = [mystringDate.slice(0, position), b, mystringDate.slice(position)].join('');
var match = output.match(/^(\d+)-(\d+)-(\d+) (\d+)\:(\d+)\:(\d+)$/);
var date = new Date(match[1], match[2] - 1, match[3], match[4], match[5], match[6]);
var result = (date.getTime() / 1000);
mc.setProperty('result', result.toString());
</script>
<filter xpath="get-property('result') > 1">