Java 避免在XML中使用Transformer写入输出文件

Java 避免在XML中使用Transformer写入输出文件,java,xml,Java,Xml,我想将转换后的XML存储在内存中 这是我的代码片段 public static void xmlProcessor(String stylesheetPathname, String inputPathname, String outputPathname ) throws TransformerException { TransformerFactory factory = TransformerFactory.newInstance(); Source st

我想将转换后的XML存储在内存中

这是我的代码片段

public static void xmlProcessor(String stylesheetPathname, String inputPathname, String outputPathname ) throws TransformerException {

        TransformerFactory factory = TransformerFactory.newInstance();
        Source stylesheetSource = new StreamSource(new File(stylesheetPathname).getAbsoluteFile());
        Transformer transformer = factory.newTransformer(stylesheetSource);
        Source inputSource = new StreamSource(new File(inputPathname).getAbsoluteFile());
        Result outputResult = new StreamResult(new File(outputPathname).getAbsoluteFile());
        transformer.transform(inputSource, outputResult);

    }
transformer.transform(输入源、输出结果)
;此调用正在文件中写入输出XML。我想知道,是否有任何方法可以将转换后的XML存储在任何对象中,并在以后的代码中使用它

对象存储(我正考虑在这里存储转换后的XML)

protectedstaticmap transformedXMLMap=newhashmap();
我想这样做,这样就可以避免对转换后的XML执行IO操作。一旦使用,我会清空地图


有什么建议吗

查看
javax.xml.transform.dom.DOMResult
类型。

您还可以将序列化的xml结果存储在字符串变量中:

StringWriter sw = new StringWriter();
Result outputResult = new StreamResult(sw);
transformer.transform(inputSource, outputResult);
String lexicalXmlResult = sw.toString();

当然,您可以将
字符串
存储在映射中,但我不确定您为什么要存储。

结果输出结果
是对象,您可以稍后参考。@Deb,不,不是。我需要在内存中的对象中使用转换后的XML,但不需要在光盘上使用。我这样做是为了不需要将转换后的XML写入光盘,因为我以后将使用转换后的XML转换为JSON。是的,但为什么要使用映射?一旦你把它做成一个字符串,你可以用它做任何你想做的事情。这是有道理的,但是现在我在Transformer Transformer=factory.newTransformer(stylesheetSource);,说“线程中的异常”main“javax.xml.transform.TransformerConfigurationException:无法编译样式表”有什么想法,为什么会这样?没有想法,似乎是一个完全无关的问题。
StringWriter sw = new StringWriter();
Result outputResult = new StreamResult(sw);
transformer.transform(inputSource, outputResult);
String lexicalXmlResult = sw.toString();