Преобразование строки в поток ввода XML в java

Я пытаюсь создать PDF-документ, используя FOP и Java.

Я получаю XML как строку, а не как файл.

Как преобразовать эту строку XML в поток ввода XML, чтобы я мог вызвать xslfoTransformer.transform(source, res); где источником является моя строка XML в качестве входного потока.

Просьба представить ваши предложения.

Ответы

Ответ 1

Вероятно, вы захотите преобразовать его в Reader, а не в InputStream. Для этого используйте StringReader. У StreamSource есть конструктор, который берет Reader, и вы можете передать это StreamSource в Transformer.transform().

Я говорю, что вы, вероятно, хотите Reader, а не InputStream, потому что строка содержит символы, а не байты, а InputStream - поток байтов, а Reader - поток символов.

Ответ 2

new StreamSource(new StringReader(str))

Ответ 3

Используйте ByteArrayInputStream:

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