开发者

java xml library based on standard dom

Since getting text content from an xml element requires 15 lines of code (see official oracle tutorial) here http://java.sun.com/webservices/reference/tutorials/jaxp/html/dom.html , the quoted tutorial itself suggests, for many needs to use thirdy party tools:

"As you can see, when you are using DOM, even a simple operation such as getting the text from a node can take a bit of programming. So if your programs handle simple data structures, then JDOM, dom4j, or even the 1.4 regular-expression package (java.util.regex) may be more appropriate for your needs"

I've tried the suggested tools and they are reasonably easy to use and complete BUT they require an evaluation of the "vitality" of their developement

. And thi开发者_C百科s evaluation is not ever obvious.

So my questions are:

1) is there a library that eases xml work, built on top of standard dom? it would ensure the robusteness and up-to-dateness of official library with more usability

2) is this "usability" lack about to be adressed in some other way (perhaps some new jsr?), in the oracle plans?


If getting text content from XML elements is what you want, use 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);

If you want to map Java objects to XML and back, use JAXB.

Both XPath (1.0) and JAXB are part of the JDK, or they can be replaced with later versions.

However, if you try to parse XML with regular expression, you are doomed!


jOOX may be precisely the library you're looking for:

  • It wraps standard Java DOM
  • It is quite lightweight
  • It is inspired by jquery, which is a proven means of simplifying DOM manipulations

An example of getting the text content of an Element:

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


XStream is good and easy to use.

You can do almost everything with annotations.

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜