哪个Java XML Parser可以进行简单处理?

时间:2011-03-01 21:41:09

标签: java xml parsing

我在java应用程序中生成一些XML。我正在研究各种XML解析选项。我不打算做任何事情,而不是遍历结构并从中提取价值。我需要使用内置于Java API(1.5+)中的其中一个而不需要任何额外的插件。我不需要创建"活动"或将其转化为其他任何东西。我不是在生成XML,只是读取和提取数据。我也没有强制执行架构。

Sun在这里提供了一个列表,但是我应该使用它并不是很明显。

http://java.sun.com/developer/technicalArticles/xml/JavaTechandXML/

在这种情况下,最合适的XML API是什么? JAXP? JDom? XPath?

9 个答案:

答案 0 :(得分:4)

我认为使用DOM解析器来解析XML并将其加载到Document中的内存中听起来足以满足您的需求。

在这种情况下,您不会使用XPath,只需使用Document API。

JAXP只是构建到JDK中的XML解析技术的同义词。术语JAXP(P用于解析)将其与JAXB区分开来(B用于绑定)。

在DOM之上构建的一些第三方库可能会让您的生活更轻松。想想JDOM或DOM4J。

答案 1 :(得分:2)

在IMO中最经典的做事方式是JAXP和XPath的结合。 Java 5.0包含JAXP 1.3,这是标准的东西。有关极简主义编码样本,请参阅this answersimilar question

答案 2 :(得分:1)

我认为最实用的工具是来自ThoughtWorks的XStream。像VRaptor这样的一些现代mvc框架使用它来服务和使用xml。看看:http://x-stream.github.io/

答案 3 :(得分:1)

我认为DOM解析器就是您所寻找的。易于实现,并具有快速搜索节点功能

答案 4 :(得分:1)

作为解析策略,您可以使用DOM策略,其优点是将孔文档保存在内存中,您可以通过xpath访问它。如果您有小型xml文档或者您真的需要所有数据一直存在且可访问,我建议这样做,因为这会消耗大量的堆空间。

如果您有更大的文档,或者您不需要一直访问,您应该使用SAX方法或Stax方法(xml pull解析),如果这在您的java发行版中可用。这些方法是基于事件的。所以它们遍历xml树并对你定义的类进行回调。所以你可以对诸如“element xy starts”“element xy ends”

之类的事件作出反应

答案 5 :(得分:1)

使用标准DOM Parser足以满足您的需求。试试this example

答案 6 :(得分:0)

XOM

使用xpath。

答案 7 :(得分:0)

如果它非常简单 - 在SAX解析器中执行它。

答案 8 :(得分:0)

SAX似乎是您想要的API。

Google“SAX Parsing”,你会发现很多例子。