java - dom Java ( JAXP ) XML解析系统的差异

  显示原文与译文双语对照的内容
127 2

有什么区别

  • DocumentBuilder.parse(InputStream)
  • DocumentBuilder.parse(InputSource)

我只能发现,对于第一种情况,解析器检测到流中的编码,因这里在后面不确定是否需要编码。

我应该知道的其他任何一点?

时间:原作者:0个回答

149 3

主要区别是第一个允许你只从二进制源读取XML内容,基于 InputStream of接口的实现。例如: 直接从文件( 使用一个 FileInputStream 插件) 。打开的套接字( 来自Socket.getInputStream() ) 等。

第二个是 DocumentBuilder.parse(InputSource),允许你从二进制源代码中读取来自二进制源的数据,英镑和 。因此,使用这个函数,你可以使用XML字符串( 使用 StringReader ) 或者 BufferedReader

当第二种方法有机会处理 InputStreams 时,第一个是快捷方式,因这里当你有一个 InputStream 时不需要创建新的InputSource实际上,InputStream 方法的源代码是:

public Document parse(InputStream is)
 throws SAXException, IOException {
 if (is == null) {
 throw new IllegalArgumentException("InputStream cannot be null");
 }
 InputSource in = new InputSource(is);
 return parse(in);
}
原作者:
...