我正在寻找像dom4j这样的东西,但没有dom4j的瑕疵,例如文档不好或丢失,看似停滞的开发状态.
背景:我一直在使用和 提倡 dom4j,但是我觉得它并不完全正确,因为我知道这个库远非最佳(例如:看看XSLT相关样式表类中的方法是如何记录的;你会传递什么来运行( )作为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?请为您的首选库提供一些理由,而不是仅仅转储名称和链接.:-)
Pet*_*aný 53
当然,XOM :-)
XOM旨在易于学习和易于使用.它非常直接,并且学习曲线非常浅.假设您已经熟悉XML,那么您应该能够非常快速地启动并运行XOM.
我现在使用XOM几年了,我仍然非常喜欢它.易于使用,Web上有大量文档和文章,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.
kdg*_*ory 17
JDK中内置的一个 ...添加了一些.
是的,使用起来很痛苦:它是根据委员会明确设计的W3C规范建模的.但是,它可以在任何地方使用,如果你坚持下去,你就不会遇到"我喜欢Dom4J","我喜欢JDOM","我喜欢StringBuffer"这些来自第三方库的论点.特别是因为这些参数可以使用不同的库变成不同的代码片段......
但是,正如我所说,我的确略有增强:实用XML库是一组实用程序类,可以更轻松地使用DOM.除了XPath包装器之外,这里没有什么复杂的东西,只是我发现自己为每个工作重写的一堆例程.
Gil*_*pio 10
我一直在使用XMLTool替换Dom4j,它运行得很好.
XML Tool使用Fluent Interface模式来促进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());
Run Code Online (Sandbox Code Playgroud)
它是为Java 5制作的,并且很容易在所选元素上创建一个可迭代对象:
for (XMLTag xmlTag : tag.getChilds()) {
System.out.println(xmlTag.getCurrentTagName());
}
Run Code Online (Sandbox Code Playgroud)
我一直很喜欢jdom.它被编写为比DOM解析更直观(并且无论如何SAX解析总是显得笨拙).
从使命宣言:
没有令人信服的理由让Java API操纵XML变得复杂,棘手,不直观或者颈部疼痛.JDOMTM既以Java为中心,又以Java优化.它的行为类似于Java,它使用Java集合,它是当前Java开发人员的完全自然的API,并且它提供了使用XML的低成本入口点.
这几乎是我的经验 - 相当直观的节点树导航.
归档时间: |
|
查看次数: |
60204 次 |
最近记录: |