2

我需要将一些 xml 模板应用于各种 xml 数据流(有时还有文件),并且似乎有大量用于 java 的 xml 库 - 足以快速确定哪些库仍然处于活动状态,它们与同样有效的其他选项有何不同,以及在选择一个选项时应考虑哪些标准。

您使用哪些库来在 java 中操作 xml,为什么它比其他库更好?

4

6 回答 6

9

saxon 是 xslt 和 xquery 解析器 - http://saxon.sourceforge.net/。这是由一位知名的 xslt 专家(他是 xslt 规范委员会的成员并撰写过书籍)构建的。有开源版和商业版。

它(xslt 片)得到不断改进。
java中的另一个xslt工具当然是XALAN。

xml - 有很多。值得注意的(多年来经过良好测试)
1)jdk xml 解析器——dom、sax、stax
2)xerces:来自 apache
3)XOM——如果 DOM 不适合你
4)JDOM——较早流行的一种开源工具
5) JAXB -- 现在内置到 JDK 6 中
6) woodstox -- 不错的 xml 处理器(读/写) -- http://woodstox.codehaus.org/

于 2008-10-21T02:08:37.267 回答
2

您应该决定是否希望/能够将整个文档加载到内存中。如果是大文档,您可能需要查看 sax解析器。这适用于大型文档。否则,您可能需要查看 dom 解析器。

于 2008-10-20T23:41:35.800 回答
2

没有人提到 JAXP,即用于 XML 处理的 Java API。与 jdk 一起开箱即用,具有默认的 xml 库实现。

于 2008-10-23T05:00:57.340 回答
1

Wrt "JAXP":这只是一个非常简单的包装器,用于创建 DOM 或 SAX 解析器实例。JDK 捆绑的实现是 Xerces。因此,它本身不是替代方案;它只是前面提到的构造“JDK解析器”的标准API。对于 XSLT,Saxon 严格优于 Xalan;特征,速度(2x)。JAXB v2 适合数据绑定,Stax (Woodstox) 最适合流式传输。

于 2009-01-26T07:42:30.657 回答
0

我使用 Xerces 进行 XML 解析 (DOM) 和针对 XSD 的验证。

对于 XSLT 处理,我使用了 Xalan,但它是 3 年前的,所以很多东西必须改变,在我的记忆中它易于使用且功能强大(我使用了几个 Mo 的输入 XML 文件)

于 2008-10-21T09:18:24.763 回答
0

我一直在使用 StAX 拉解析器来实现自定义内存和性能高效的 POJO-2-xml 序列化解决方案,并且对结果非常满意。它捆绑在 JDK6 中,因此您不需要任何额外的依赖项来运行它。

于 2009-06-15T13:55:04.453 回答