你推荐什么Java XML库(来取代dom4j)?[已关闭]

2022-08-31 13:13:09

我正在寻找像dom4j这样的东西,但没有dom4j的疣,例如糟糕或丢失的文档以及似乎停滞不前的开发状态。

背景:我一直在使用提倡dom4j,但感觉并不完全正确,因为我知道库远非最佳(例如:看看XSLT相关样式表类中的方法是如何记录的;你会把什么传递给run()作为参数?)String mode

要求:该库应该使基本的 XML 处理比使用纯 JDKjavax.xmlorg.w3c.dom 包时更容易。像这样的事情:

  • 将 XML 文档(从文件或字符串)读取到对象中,轻松遍历和操作 DOM,执行 XPath 查询并对其运行 XSLT。
  • 在 Java 代码中构建 XML 文档,添加元素、属性和数据,最后将文档写入文件或字符串。

我真的很喜欢dom4j的承诺,实际上:“易于使用,开源库,用于处理XML,XPath和XSLT [...]完全支持 DOM、SAX 和 JAXP。即将推出的dom4j 2.0确实声称可以修复所有问题:充分利用Java 5并添加缺少的文档。但不幸的是,如果你仔细观察

警告:dom4j 2.0 处于前 alpha 阶段。它可能无法编译。如果它可以随机编译,则可能无法运行。如果它偶尔运行,它可能会突然爆炸。如果你想使用 dom4j,你需要版本 1.6.1。真。

...该网站已经说了很长时间。那么有没有一个很好的替代dom4j呢?请为您喜欢的库提供一些理由,而不仅仅是转储名称和链接。:-)


答案 1

当然,XOM :-)

XOM的设计易于学习和使用。它的工作原理非常直接,并且具有非常浅的学习曲线。假设您已经熟悉 XML,您应该能够非常快速地启动并运行 XOM。

我使用XOM已经好几年了,我仍然非常喜欢它。易于使用,网络上有大量文档和文章,API在版本之间不会更改。1.2 最近发布。

XOM 是唯一一个对正确性不作任何妥协的 XML API。XOM 只接受命名空间格式正确的 XML 文档,并且只允许您创建命名空间格式正确的 XML 文档。(事实上,它比这更严格一些:它实际上保证了所有文档都是可往返的,并且具有明确定义的XML信息集。XOM 管理您的 XML,因此您不必这样做。使用 XOM,您可以专注于应用程序的独特价值,并信任 XOM 获得正确的 XML。

查看网页 http://www.xom.nu/,了解常见问题解答,说明书,设计原理等。如果一切都设计得如此有爱就好了:-)

作者还写了关于XML API的问题(以及如何修复它们)。(基本上,XOM首先存在的原因)

这里还有Artima对作者关于XOM的5部分采访,他们谈到了XML API的问题好的,坏的和DOMJDOM的设计审查从JDOM中吸取的教训,最后是设计原则和XOM


答案 2

内置于JDK中的那个...加上一些补充。

是的,使用起来很痛苦:它是按照W3C规范建模的,这些规范显然是由委员会设计的。但是,它可以在任何地方使用,如果您确定它,则不会遇到来自第三方库的“我喜欢Dom4J”,“我喜欢JDOM”,“我喜欢StringBuffer”的论点。特别是因为这样的参数可以使用不同的库变成不同的代码段......

但是,正如我所说,我确实稍微增强了一下:实用 XML 库是实用程序类的集合,可以更轻松地使用 DOM。除了XPath包装器之外,这里没有什么复杂的,只是我发现自己为每项工作重写的一堆例程。


推荐