Я застрял в расчете разницы между двумя датами в XSLT.
Мой XML:
<?xml version="1.0" encoding="utf-8"?>
<LIST>
<OUTPUT>
<LOG>
<item>
<DocNo>123456789</DocNo>
<CreationDate>2018-05-22</CreationDate>
</item>
<item>
<DocNo>111222333</DocNo>
<CreationDate>2018-05-24</CreationDate>
</item>
</LOG>
</OUTPUT>
</LIST>
Мой XSLT:
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xalan" version="2.0">
<xsl:template match="/">
<Rowsets>
<Rowset Name="Bulk">
<xsl:for-each select="LIST/OUTPUT/LOG/item">
<Row>
<DocumentNo>
<xsl:value-of select="DocNo"/>
</DocumentNo>
<CreationDate>
<xsl:value-of select="CreationDate"/>
</CreationDate>
<DateDiff>
<xsl:value-of select="days-from-duration(xs:date(CreationDate) - xs:date('2018-05-24'))"/>
</DateDiff>
</Row>
</xsl:for-each>
</Rowset>
</Rowsets>
</xsl:template>
</xsl:stylesheet>
Теперь, когдаЯ запускаю этот XML & XSLT здесь , он отлично работает и дает мне правильный вывод.
Но теперь, когда я сохраняю этот XSLT и XML в SAP MII и запускаю его, блок XSLT Transformation Action, яошибка ниже:
Необработанное исключение из XSL_Transformation_0 при попытке вызвать метод javax.xml.transform.Transformer.transform (javax.xml.transform.Source, javax.xml.transform.Result)нулевого объекта, загруженного из локальной переменной 'процессор'
Я действительно не уверен, что происходит.У кого-нибудь есть подсказка?
Спасибо