什么是最简单和简约的Java xml API? [英] What is the simplest and minimalistic java xml api?

查看:48
本文介绍了什么是最简单和简约的Java xml API?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有许多相当不错的json库lika GSon.但是对于XML,我只知道Xerces/JDOM,并且都具有乏味的API.我不喜欢使用不必要的对象,例如DocumentFactory,XpathExpressionFactory,NodeList等.因此,鉴于对诸如groovy/scala之类的语言的本机xml支持,我有一个问题.有没有简约的Java XML IO框架?

There are many pretty good json libs lika GSon. But for XML I know only Xerces/JDOM and both have tedious API. I don't like to use unnecessary objects like DocumentFactory, XpathExpressionFactory, NodeList and so on. So in the light of native xml support in languages such as groovy/scala I have a question. Is there are minimalistic java XML IO framework?

PS XStream/JAxB对于序列化/反序列化很有用,但是在这种情况下,我正在寻找例如使用XPath在XML中流式传输一些数据的方法.

PS XStream/JAxB good for serialization/deserialization, but in this case I'm looking for streaming some data in XML with XPath for example.

推荐答案

Dom4J 岩石.非常简单易懂

示例代码:

public static void main(String[] args) throws Exception {
    final String xml = "<root><foo><bar><baz name=\"phleem\" />"
                     + "<baz name=\"gumbo\" /></bar></foo></root>";

    Document document = DocumentHelper.parseText(xml);

    // simple collection views
    for (Element element : (List<Element>) document
            .getRootElement()
            .element("foo")
            .element("bar")
            .elements("baz")) {
        System.out.println(element.attributeValue("name"));
    }

    // and easy xpath support
    List<Element> elements2 = (List<Element>)
        document.createXPath("//baz").evaluate(document);
    for (final Element element : elements2) {
        System.out.println(element.attributeValue("name"));
    }
}

输出:

phleem
浓汤
韧皮部
浓汤

phleem
gumbo
phleem
gumbo

这篇关于什么是最简单和简约的Java xml API?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆