基于标准dom的java xml库

时间:2011-09-20 11:11:46

标签: java xml dom

由于从xml元素获取文本内容需要15行代码(参见官方oracle教程)http://java.sun.com/webservices/reference/tutorials/jaxp/html/dom.html,所引用的教程本身表明,对于许多需要使用第三方工具:

“正如您所看到的,当您使用DOM时,即使是从节点获取文本等简单操作也可能需要一些编程。因此,如果您的程序处理简单的数据结构,那么JDOM,dom4j,甚至1.4正则表达式包(java.util.regex)可能更适合您的需要“

我尝试了建议的工具,它们相当容易使用和完成,但它们需要评估其开发的“活力”。这种评价并不明显 所以我的问题是:

1)是否有一个库可以简化基于标准dom的xml工作?它将确保具有更多可用性的官方图书馆的鲁棒性和最新性 2)在oracle计划中,这种“可用性”是否会以某种其他方式(也许是一些新的jsr?)得到解决?

3 个答案:

答案 0 :(得分:2)

如果从XML元素中获取文本内容是您想要的,请使用XPath:

    String xml = "<root><p>This is some text</p><p>And this is more text</p></root>";
    XPath xpath = XPathFactory.newInstance().newXPath();
    String text = xpath.evaluate("/root/p[1]", new InputSource(
            new StringReader(xml)));
    System.out.println(text);

如果要将Java对象映射到XML并返回,请使用JAXB。

XPath(1.0)和JAXB都是JDK的一部分,或者可以用更高版本替换它们。

但是,如果您尝试使用正则表达式解析XML,则 doomed

答案 1 :(得分:0)

XStream好用且易于使用。

你可以用注释做几乎所有事情。

http://x-stream.github.io/

答案 2 :(得分:0)

jOOX可能正是您正在寻找的图书馆:

  • 它包装标准Java DOM
  • 非常轻量级
  • 它的灵感来自jquery,这是一种简化DOM操作的经过验证的方法

获取元素的文本内容的示例:

$(document).find("element").text();
$(document).xpath("//element[3]").text();