我将XML数据作为必须解析的字符串,我使用以下代码将XML字符串转换为inputsource:
StringReader reader1 = new StringReader( xmlstring);
InputSource inputSource1= new InputSource( reader );
我正在将输入源传递给
Document doc = builder.build(inputSource);
我想在另一个解析器类中使用相同的inputSource1,但我正在关闭流。
我如何处理这个或者有没有其他方法将XML数据传递给文件以外的解析器?
答案 0 :(得分:3)
查看JavaDoc,似乎InputSource
不是为多个解析器共享和重用而设计的。
字节流和字符流的标准处理是在解析结束清理时关闭它们,因此应用程序在将它们传递给解析器后不应尝试重新使用这些流。
所以你必须创建一个新的InputSource
。如果您真的是从String
阅读,那么I / O或内存成本就没有差别。