2017-11-21 16 views
0

XSLTファイルをプレーンテキストに変換しようとしています。問題は、XSLTファイルに符号化された値があることです。例えば、&は&で、Transformerの工場出力はエンコードされた値です。 XMLデコーダを使用してプレーンテキストに変換する以外にも優れていますか?XSLTをエンコードされたデータのプレーンテキストに変換するにはどうすればよいですか?

TransformerFactory tFactory = TransformerFactory.newInstance(); 
Transformer transformer = tFactory.newTransformer(new StreamSource(XSLT_Source));  
transformer.setOutputProperty("media-type", "text/plain"); 
transformer.transform(new StreamSource(XSLT_Source), new StreamResult(new FileOutputStream(outputTrager))); 
+0

を設定する必要があります:' <のxsl出力方式=「テキスト」/>を。 Java APIを使用してそれを行う方法もあるかもしれませんが、詳細を思い出さず、XSLTプロセッサに依存する可能性があります。 –

答えて

1

スタイルシートを編集できる場合は、<xsl:output method="text"/>が使用されていることを確認してください。あなたがJAXP APIでプログラム的にそれを設定したい場合は、https://docs.oracle.com/javase/8/docs/api/javax/xml/transform/OutputKeys.html#METHODを参照してください、あなたはXSLTが、それは `使用することを確認し編集することができた場合は

transformer.setOutputProperty(javax.xml.transform.OutputKeys.METHOD, "text"); 
+0

これは素晴らしいです!私はメディアタイプで間違った出力プロパティを使用していました。結果ツリーの出力形式を区別できませんでした。 MEHTODプロパティを使用すると、結果ツリーがテキストとして明示的に設定され、エンコーディングが処理されます。 – user8185075

関連する問題