在java中将字符串转换为XML输入流

在java中将字符串转换为XML输入流,java,apache-fop,Java,Apache Fop,我正在尝试使用FOP和Java生成一个PDF文档 我将XML作为字符串而不是文件接收 如何将这个XML字符串转换为XML输入流,以便调用xslfotranformer.transform(source,res);其中source是作为输入流的XML字符串 请提供您的建议。使用: 您可能希望将其转换为读取器,而不是输入流。用来做这个。StreamSource有一个接受读取器的构造函数,您可以将该StreamSource传递给Transformer.transform() 我说您可能需要一个读取器而

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

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

如何将这个XML字符串转换为XML输入流,以便调用xslfotranformer.transform(source,res);其中source是作为输入流的XML字符串

请提供您的建议。

使用:


您可能希望将其转换为
读取器
,而不是
输入流
。用来做这个。StreamSource有一个接受读取器的构造函数,您可以将该
StreamSource
传递给Transformer.transform()


我说您可能需要一个
读取器
而不是
输入流
,因为字符串包含字符,而
输入流
是字节流,而
读取器
是字符流。

意味着您知道XML的编码。这通常是不正确的。我尝试了这个方法,但我得到了一个例外。org.apache.fop.area.AreaTreeHandler.endDocument(AreaTreeHandler.java:264)org.apache.fop.FOTreeBuilder.endDocument(FOTreeBuilder.java:171)net.sf.saxon.event.ContentHandlerProxy.close(ContentHandlerProxy.java:255)net.sf.saxon.event.ImplicitResultChecker.close(ImplicitResultChecker.java:69)上的java.NullPointerException在net.sf.saxon.event.ProxyReceiver.close(ProxyReceiver.java:87)在net.sf.saxon.event.ComplexContentOutputter.close(ComplexContentOutputter.java:468)有任何线索吗?好的..我找到了。。。当我将xml的根元素重命名为“root”时,它起了作用。谢谢你的帮助!!!!注意:
newstreamsource(str)
不起作用,因为它希望
str
是一个URL
new StreamSource(new StringReader(str))
new StreamSource(new StringReader(str))