web-dev-qa-db-ja.com

java)で文字列をXML入力ストリームに変換します

FOPとJavaを使用してPDFドキュメントを生成しようとしています。

XMLをファイルではなく文字列として受け取ります。

このXML文字列をXML入力ストリームに変換して、xslfoTransformer.transform(source、res);を呼び出すにはどうすればよいですか。ここで、sourceは入力ストリームとしてのXML文字列です。

あなたの提案を提供してください。

17
jobinbasani

おそらく、ReaderではなくInputStreamに変換する必要があります。これを行うには、 StringReader を使用します。 StreamSourceには、Readerを受け取るコンストラクターがあり、そのStreamSourceをTransformer.transform()に渡すことができます。

文字列はバイトではなく文字を保持し、Readerはバイトのストリームであり、InputStreamは文字のストリームであるため、おそらくInputStreamではなくReaderが必要だと思います。

21
new StreamSource(new StringReader(str))
37

ByteArrayInputStream を使用します:

String S = ...;
InputStream source = new ByteArrayInputStream(S.getBytes(encoding))
2
ChssPly76