2011-07-07 8 views
3

私はこのようなコードを持っています。私はmyResults = writer.getBuffer().toString();がユースケースのいくつかについては空の文字列を返しますが、他のユースケースでは返さないことがわかりました。何が空の文字列を返すようにするjavax.xml.transform.Transformer.transform()

私はサーバーを見ましたが、xmlファイルに特殊文字が表示されませんでした。 がtransformer.transform()になると、myResults = writer.getBuffer().toString();は空の文字列を返します。 nullを返しません。空の文字列です。

StringWriter writer = new StringWriter(); 
    Result result = new StreamResult(writer); 
    try{ 
     transformer.transform(new StreamSource(theInputStream), result); 
    }catch (Exception e) { 
     e.printStackTrace(); 
    } 

    myResults = writer.getBuffer().toString(); 

どうもありがとう、

+0

そして、実際には、ソースドキュメントは実際にはxsltに基づいて何かに変換できますか? – nos

+0

すべきだと思います。私はいくつかのユースケースで返されたフィードを翻訳できましたが、他のものは翻訳できませんでした。ソース文書に何か問題があるかどうかを検証するにはどうすればよいですか?ありがとう。 – dojomedojo

+0

TransformerExceptionをキャッチしようとします。また、XMLを検証することもできますが、そうするにはxsd(スキーマ定義)ファイルが必要です。 [The Java XML Validation API](http://www.ibm.com/developerworks/xml/library/x-javaxmlvalidapi/index.html) – L4zl0w

答えて

0

私は最近、これに走ったが、その同じシナリオどうかはわかりません。

私はWindowsで開発していて、Linuxのボックスに展開していました。私のWindowsマシンではすべてがうまく変換されますが、Linuxのボックスには変換するファイルと空のファイルを生成するファイルがあります。私は最終的に答えがXSLT変換の行末にあることを発見しました。行の終わりをLinuxのスタイル行の終わりに変更した後、変換は正常に機能しました。

これが役に立ちます。

関連する問題