This question already has an answer here:
Java (JAXP) XML parsing differences of DocumentBuilder
(1个答案)
已关闭6年。
解析xml时使用InputSource和InputStream有什么区别?
我在一些教程中看到了两个例子
没有InputSource:
与InputSource的区别在哪里
那么性能上有什么区别吗?还是其他?
(1个答案)
已关闭6年。
解析xml时使用InputSource和InputStream有什么区别?
我在一些教程中看到了两个例子
没有InputSource:
InputStream is;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbFactory.newDocumentBuilder();
Document document = db.parse(is);
与InputSource的区别在哪里
DocumentBuilder db = dbFactory.newDocumentBuilder();
InputSource inputSource = new InputSource(is);
Document document = db.parse(inputSource);
那么性能上有什么区别吗?还是其他?
最佳答案
InputSource
可以从InputStream
读取,但是也可以从Reader
读取或直接从URL(打开流本身)读取。从InputStream
进行解析等效于从new InputSource(theStream)
进行解析。
如果要解析的文件通过相对URI引用了外部DTD或任何外部实体,则您无法从纯InputStream
对其进行解析,因为解析器不知道解析该相对路径时应使用的基本URL。 。在这种情况下,您将需要从流中构造一个InputSource
并使用setSystemId
设置基本URI,然后从该源中进行解析,而不是简单地将流直接传递给解析器。
10-08 09:41