【问题标题】:regarding xml parser关于 xml 解析器
【发布时间】:2009-11-13 13:54:57
【问题描述】:

什么是 xml 解析器?有多少种解析器?哪个是解析 xml 文档的最佳 xml 解析器? xml 解析器将如何工作?谁能简单地说一下?

【问题讨论】:

  • 在给出关于 XML 解析器的答案后,你怎么能问这个问题? stackoverflow.com/questions/1722140/…。您显然已经知道解析器是什么,并且有不同的类型。巨魔?

标签: xml parsing


【解决方案1】:

XML 解析器与任何其他解析器一样,是一种将传输表示(在本例中为文本)转换为您可以从代码中访问的内容(在本例中为树或一系列解析事件)的工具,取决于解析器类型)。

现在有两种主要类型的 XML 解析器:DOM 解析器,从 XML 结构创建内存对象树和 串行解析器,例如 @ 987654322@.

对于 DOM 解析器,解析器必须读取整个 XML 文档并构造内存中的对象:树节点、属性节点等,并将它们放入表示 XML 文件的合适树结构中。这有明显的好处,例如对整个树的随机访问,但也有缺点,主要是完整的树必须驻留在内存中,对于大文件也可能相当大,并且必须解析完整的文件在您开始处理数据本身之前。

另一方面,

SAX 是一种串行方法,它简单地扫描 XML 文件并根据它找到的句法元素生成 events,例如开始标记、属性、结束标记等。你肯定也可以从该信息创建树结构,但通常这种方法更轻量:您可以在读取和解析文档时开始处理数据,而不必等到全部完成。但是,如果您愿意,您不能访问整个树。您可以在树内向前或向后跳跃等。

解析 XML 文档的理想方法取决于您的特定应用程序需求。如果您必须在不同时间点查看树中的任意位置,那么显然 DOM 是最好的方法。但是,如果您的 XML 文档的结构能够很好地从头到尾阅读,而不必再次返回,那么 SAX 应该可以工作。例如,对于 XHTML 显示,SAX 将是正确的方法,即使您仍然需要在后台使用对象模型。但是对于单独的显示目的,通常只需要查看进来的标签并渲染它们就足够了。

【讨论】:

  • 那是相当老的信息,你可能是从 wiki 复制的
  • 是的,只是因为有些人花时间写更长的答案,他们一定是在某个地方偷了它。我并不是说我知道最新最好的 XML 解析。这只是 OP 可以在 WP 或其他地方找到的基本信息。至于我,我所处理的关于 XML 的只是 XSLT。这不是我每天甚至每月都使用的东西,所以对于任何不准确之处,我深表歉意。但是指责我从其他地方复制它并不是很好。我想我应该为没有收到反对票而高兴...
【解决方案2】:
  • XML 解析器是将 XML 转换为可访问对象的工具 (编辑:跟随 cmets) 或成一系列事件。基本上任何你可以用来消费和操作 XML 数据的东西

  • 您能为其他问题指定一种语言吗?

【讨论】:

    【解决方案3】:

    DOM 和 SAX 是比较老的技术,最新的可以查看 STaX 和 VTD-XML

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 2015-04-17
      • 2011-01-08
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      相关资源
      最近更新 更多