英语基础好的可以直接阅读官方文档:传送门
XML字符串如下
<AAA>
<BBB>1</BBB>
<CCC>2</CCC>
<DDD>
<BBB>3</BBB>
<CCC>4</CCC>
</DDD>
</AAA>
初步接触
- 第一步在开始所有行为之前必须获取Document对象
public Document getDocument() {
//通过url请求返回xml字符串
SAXReader reader = new SAXReader();
Document document = reader.read(url);
//已经有xml字符串
Document document = DocumentHelper.parseText(xmlStr);
} - 第二步获取RootElement,即获取AAA
public Element getRootElement(Document document) {
return document.getRootElement();
} - 接下来可以获取一些指定节点的值,比如获得AAA节点下BBB的值
public String gerValue(Element element) {
Element bbb = element.element("BBB");
return bbb.getTextTrim();
} - 当然如果是DDD节点这种情况,他含有子标签,我们想获得BBB的值
public String getValue(Element element) {
Element ddd = element.element("DDD");
return ddd.element("BBB").getTextTrim();
}
前方高能
- 如果你不清楚xml结构,希望把他的所有一切都搞清楚,福利来了:
public void getEverything(Document document) {
getEverything(document.getRootElement);
}
public void getEverything(Element element) {
for (int i=0, size=element.nodeCount();i++) {
Node node = element.node(i);
if ( node instanceof Element ) {
getEverything( (Element) node );
} else {
// do something....
}
}
}
PS:Node可以理解为包含在Element中的,比如属性,注 释,文字,都是Node。而Element则是一个完整的,我们通常理解的节点。