Java(JAXP)XML解析DocumentBuilder的差异

时间:2010-11-23 07:00:42

标签: java dom sax jaxp

之间有什么区别吗?
  1. DocumentBuilder.parse(InputStream)
  2. DocumentBuilder.parse(InputSource)
  3. 我只能发现,对于第一种情况,解析器检测流中的编码,因此它更安全,而在后者中我不确定是否需要设置编码。

    我应该知道其他任何要点(例如演出)?

1 个答案:

答案 0 :(得分:4)

主要区别在于,第一个允许您根据InputStream接口的实现,仅从二进制源读取XML内容。即:直接来自文件(使用FileInputStream),打开套接字(来自Socket.getInputStream())等。

第二个DocumentBuilder.parse(InputSource)允许您从二进制来源读取数据(这是InputStream impl)来自角色来源({{3}实现)。因此,使用此字符串,您可以使用XML字符串(使用StringReader)或Reader

虽然使用第二种方法你已经有机会处理InputStreams,但第一种方法是一种快捷方式,所以当你有一个InputStream时,你不需要创建一个新的{ {1}}。实际上,InputSource方法的源代码是:

InputStream