我一直在寻找用Java加载XML文件,我似乎无法破译它的某些部分。 我知道SAX是一种流媒体机制,但在谈论DOM时,各种网站都会讨论模型“加载到完整文件”或“加载所有标签”,并建议将SAX与大型XML文件一起使用。 / p>
DOM实际加载完整文件的程度如何?第二个我访问根节点,它是否为文件的每个字节分配程序内存?是否仅在加载文本内容时将标记加载到最低级别?
我将使用大文件,但随机访问会很有用,编辑是必需的,所以我相信DOM是我的最佳选择。
非常感谢。
答案 0 :(得分:3)
它确实加载整个文件并在内存中构造树结构。因此,将加载每个标记,属性和任何嵌套标记(无论嵌套级别多少)。只需要构建的树越大,你拥有的XML文件越大。
答案 1 :(得分:2)
是的,DOM读取整个文档,解析它并将其放入内存中。
答案 2 :(得分:0)
如果您使用DOM进行解析,则执行与此类似的操作:
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(file);
(在try / catch中)
执行解析的那一刻,Document doc
变量将包含表示为DOM层次结构的整个文档。