关于dom vs sax here
的讨论所选答案说:
DOM is easier to use but has an overhead of parsing the entire XML before you can start using it
我理解在SAX中,你不需要解析整个xml。 让我们说我正在使用Sax解析器,我想找到一个特定的节点。现在,如果节点位于xml文档的末尾,那么sax解析器如何在不解析整个xml的情况下找到它?
我的另一个问题是为什么在sax中我们无法插入/删除节点? 出于某种原因,这些答案在“萨克斯是基于事件的”声明中并不明显。
答案 0 :(得分:0)
Dom和Sax方法都读取了所有文件!
这只是意味着Dom正在解析每个节点,以便在内存中创建一个树,您可以使用Dom请求获得所需的内容。
Sax不同,它不解析文件,它只会在读取它时发生的每个事件后回调通知你,比如:startDocument,startElement,endElement,endDocument ......在那些方法中你可以检查每个标签/属性的名称以获得例子,然后选择您感兴趣的内容。