24

我正在尝试使用 FOP 和 Java 生成 PDF 文档。

我将 XML 作为字符串而不是作为文件接收。

如何将此 XML 字符串转换为 XML 输入流,以便可以调用 xslfoTransformer.transform(source, res); 其中 source 是我的 XML 字符串作为输入流。

请提供您的建议。

4

3 回答 3

45
new StreamSource(new StringReader(str))
于 2009-10-02T17:01:05.693 回答
24

您可能希望将其转换为Reader,而不是InputStream. 使用StringReader来执行此操作。StreamSource 有一个带有 Reader 的构造函数,您可以将它传递StreamSource给 Transformer.transform()。

我说你可能想要 aReader而不是 anInputStream因为 String 包含字符,而不是字节,并且 anInputStream是字节流,而 aReader是字符流。

于 2009-10-02T17:00:26.120 回答
2

使用ByteArrayInputStream

String S = ...;
InputStream source = new ByteArrayInputStream(S.getBytes(encoding))
于 2009-10-02T16:55:58.417 回答