DOM vs SAX Java

pro*_*doc 2 java parsing android dom xml-parsing

我有一个大的xml文件,可以从互联网上下载.为了解析它,我尝试使用DOM解析器但是它不允许我跳过某些标记,因为它给了我一个错误.有没有解决的办法?如果我理解正确,SAX解析器允许您跳过标签,而DOM则不允许.有人可以澄清这个事实,好像就是这样,我无法理解DOM解析器的优点是什么.提前致谢.

Hip*_*ray 12

DOM被设计为一种独立于语言的对象模型,用于存放任何XML数据,因此是一个庞大而复杂的系统.它非常适合首先加载XML文档,然后对其执行各种操作的两阶段方法.另一方面,SAX被设计为使用单相方法的相当轻量级的系统.使用SAX,在加载文档时执行用户指定的操作.一些应用程序使用SAX生成较小的对象模型,过滤掉不感兴趣的信息,然后以类似于DOM的方式处理.请注意,尽管DOM和SAX是众所周知的"标准"XML API,但还有很多其他可用的API,有时使用非标准API可能会使特定应用程序更好.使用XML,重要的一点始终是数据; 代码可以重写.

一些快速点:

  1. SAX比DOM快.
  2. SAX适用于大型文档,因为它比Dom占用更少的内存.
  3. 当Dom需要更多时间时,SAX花费更少的时间来阅读文档.
  4. 使用SAX,我们可以访问数据但我们无法修改数据.使用Dom我们可以修改数据.
  5. 我们可以随时随地停止SAX解析.
  6. SAX是顺序解析,但是使用DOM我们也可以向后移动.
  7. 要解析机器生成的代码SAX更好.要解析人类可读的文档,DOM很有用.

  • DOM不能跳过标签,它将所有信息作为树模型返回,然后从树模型中可以选择您想要的特定信息......所以为了回答您的问题,没有DOM不能跳过标签,只有SAX可以.有不同的方法只返回树的某个级别的信息(如树的低级别),但是仍然需要通过所有标记来执行此操作 (3认同)