你推荐什么Java XML库(替换dom4j)?
我正在寻找类似dom4j的东西,但没有dom4j的瑕疵,比如文档不好或缺失以及看似停滞的开发状态。
背景:我一直在使用和倡导dom4j,但并不完全正确,因为我知道库很不理想(例如:请参阅XSLT相关Stylesheet类中的方法是如何记录的;您将传递什么来运行( )作为String mode
参数?)
要求:该库应该比使用纯JDK( javax.xml
和org.w3c.dom
包)时更容易进行基本的XML处理。 像这样的事情:
我真的很喜欢dom4j所承诺的,实际上:“易于使用,开放源代码库用于处理XML,XPath和XSLT [...],完全支持DOM,SAX和JAXP。” 即将到来的dom4j 2.0声称修复了一切:充分利用Java 5并添加缺少的文档。 但不幸的是,如果你仔细观察:
警告:dom4j 2.0处于pre-alpha阶段。 它很可能无法编译。 如果它可以随机编译,它可能无法运行。 偶尔它会突然爆炸。 如果你想使用dom4j,你想要版本1.6.1。 真。
...网站已经说了很长时间了。 那么dom4j有没有好的选择? 请为您喜欢的图书馆提供一些理由,而不是仅仅倾销名称和链接。 :-)
当然,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首先存在的原因)
这里还有5部分Artima采访了作者关于XOM的内容,他们谈论了XML API,好,坏和DOM,JDOM的设计评论,JDOM的经验教训以及最终的设计原则和XOM。
JDK中内置的一个...只有几个补充。
是的,使用起来很痛苦:它是在W3C规范是由委员会明确设计的。 然而,它可以在任何地方使用,如果你对此置之不理,就不会遇到来自第三方库的“我喜欢Dom4J”,“我喜欢JDOM”,“我喜欢StringBuffer”等参数。 特别是因为这些参数可以变成使用不同库的不同代码片段......
但是,正如我所说的,我确实略微提高了一点: Practical XML库是一组实用程序类,可以更轻松地使用DOM 。 除了XPath包装器之外,这里没有任何复杂的东西,只是我发现自己正在为每项工作重写一堆例程。
我一直使用XMLTool替换Dom4j,并且它工作得很好。
XML工具使用Fluent接口模式来促进XML操作:
XMLTag tag = XMLDoc.newDocument(false)
.addDefaultNamespace("http://www.w3.org/2002/06/xhtml2/")
.addNamespace("wicket", "http://wicket.sourceforge.net/wicket-1.0")
.addRoot("html")
.addTag("wicket:border")
.gotoRoot().addTag("head")
.addNamespace("other", "http://other-ns.com")
.gotoRoot().addTag("other:foo");
System.out.println(tag.toString());
它适用于Java 5,并且可以很容易地在选定元素上创建一个可迭代对象:
for (XMLTag xmlTag : tag.getChilds()) {
System.out.println(xmlTag.getCurrentTagName());
}
链接地址: http://www.djcxy.com/p/47489.html
上一篇: What Java XML library do you recommend (to replace dom4j)?