2009-11-13 43 views
-1

什么是xml解析器?有多少种解析器?这是解析XML文档的最好的XML解析器? XML解析器如何工作?任何人都可以简单地说出来吗?关于xml解析器

+1

你怎么能要求提供有关XML解析器的答案后,这个问题? http://stackoverflow.com/questions/1722140/how-can-i-parse-xml-using-java/1728265#1728265。你显然已经知道解析器是什么,并且有不同的类型。巨魔? – 2009-11-16 13:54:24

回答

1
  • 一个XML语法分析器是一种工具,将XML转换成可访问的对象 (编辑:继评论) 或成一系列的事件。基本上任何你可以用它来消耗和XML数据

  • 行为你可以指定其他qustions语言?

2

的XML解析器,就像任何其他的解析器,一个工具,它从运输形式转换(文本,在这种情况下)的东西,你可以从你的代码中访问(在这种情况下,一棵树或一系列解析事件,具体取决于解析器类型)。

有两种主要类型的XML解析器时下:DOM解析器从XML结构创建一个内存中的对象树并串行解析器,如SAX

对于DOM解析器解析器必须读取整个XML文档和构造在内存中的对象:树节点,属性节点,等等,并把它们转换成表示该XML文件的适当的树结构。这具有显而易见的好处,例如对整个树的随机访问,但也有缺点,主要是完整的树必须驻留在内存中,对于大文件,内存可能相当大,以及必须解析完整文件的事实然后才能开始处理数据本身。

SAX,另一方面是串行的做法,仅仅扫描XML文件并生成事件根据所发现什么语法元素,如启动标签,属性,结束标记等,您一定可以创建一个树结构也是如此,但通常这种方法更加轻便:当文档被读取和解析时,您可以开始处理数据,无需等到全部完成。但是,如果您想要,则无法访问整个树。您可以在树内向前或向后跳,等

用于解析XML文档的理想的方法取决于您的具体应用需求。如果你必须在不同的时间点观察树中的任意位置,那么显然DOM是最好的方法。但是,如果您的XML文档具有适合从头到尾阅读并且不必再返回的结构,则SAX应该可以工作。例如,对于XHTML显示来说,即使您仍然需要在后台使用对象模型,SAX仍然是正确的方法。但是,对于唯一的显示目的,通常只要查看哪些标签进入并渲染即可。

+0

这是很老的信息,你可能从维基 – 2009-11-13 22:23:38

+0

复制它对,没错,仅仅因为一些人会花时间来写,他们一定是什么地方偷来的更长的答案。我不是说我知道XML解析中的最新和最伟大的。这些都是OP可以在WP或其他地方找到的基本信息。至于我所讨论过的关于XML的所有内容都是XSLT。这是我每天甚至每月使用的,所以我对任何不准确的情况表示歉意。但指责我从其他地方复制它并不是很好。我想我应该很高兴没有收到downvote ... – Joey 2009-11-14 01:04:26

0

DOM和SAX是相对而言,老技术,为最新的文档检查STAX和VTD-XML