bugfix> xml > 投稿

XSLTの2つの日付の差を計算するのにちょっと困ります。

私の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ブロックを実行すると、次のエラーが発生します。

Uncaught exception from XSL_Transformation_0, while trying to invoke the method javax.xml.transform.Transformer.transform(javax.xml.transform.Source, javax.xml.transform.Result) of a null object loaded from local variable 'processor'

何が起こっているのか本当に分かりません。誰にも手がかりがありますか?

ありがとう

回答 1 件
  • xalan を含めることに基づいて  名前空間(スタイルシートには不要)SAP MII XSLT変換アクション Xalanをトランスとして使用しています。

    XalanはXSLT 1.0のみです。 Xalanを使用してOxygen/XMLで変換を実行すると、次の結果が得られます。

    Severity: fatal
    Description: Could not find function: days-from-duration
    Start location: 15:119
    Severity: fatal
    Description: function token not found.
    Start location: 15:119
    Severity: fatal
    Description: java.lang.NullPointerException - null
    
    

    XSLT 2.0トランスフォーマーで実行すると、正常に機能します。

あなたの答え