2

TransformerFactory.newInstance().newTransformer(streamSource) が null を返すのはどうしてでしょうか。javadoc によると、これは不可能です: http://download.oracle.com/javase/6/docs/api/javax/xml/transform/TransformerFactory.html#newTransformer(javax.xml.transform.Source)

ここにグルーヴィーなコードサンプルがあります

    def is = new ClassPathResource('xslt/MySpace-Contact.xsl').inputStream
    println is
    def streamSource = new StreamSource(is)
    println streamSource
    def factory = TransformerFactory.newInstance()
    println factory
    def tr = factory.newTransformer(streamSource)
    println tr

出力は次のとおりです。

--Output from testTransformation--
java.io.BufferedInputStream@32999f10
javax.xml.transform.stream.StreamSource@399ed64
org.apache.xalan.processor.TransformerFactoryImpl@6eb04214
null

4

2 に答える 2

6

私自身の質問に答えます。XSLT ファイルが有効でない場合、それが発生します (newTransformer(Source) は を返しnullます)。Oracleに報告してjavadocを変更する必要があると思います。null返される可能性はまだあります。

于 2011-02-17T15:48:39.240 に答える
0

スクリプトにタイプミスがあります。最後のステートメントは、"tr" ではなく "tf" を出力します。「tf」は初期化されていないスクリプト変数であるため、その値は null です。

于 2011-02-03T08:15:06.210 に答える