Преобразовать строку в поток ввода XML в Java - PullRequest
16 голосов
/ 02 октября 2009

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

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

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

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

Ответы [ 3 ]

36 голосов
/ 02 октября 2009
new StreamSource(new StringReader(str))
20 голосов
/ 02 октября 2009

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

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

2 голосов
/ 02 октября 2009

Использовать ByteArrayInputStream :

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