什么是最简单和简约的Java xml API? [英] What is the simplest and minimalistic 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屋!