英語(yǔ)基礎(chǔ)好的可以直接閱讀官方文檔:傳送門
XML字符串如下
<AAA>
<BBB>1</BBB>
<CCC>2</CCC>
<DDD>
<BBB>3</BBB>
<CCC>4</CCC>
</DDD>
</AAA>
初步接觸
- 第一步在開始所有行為之前必須獲取Document對(duì)象
public Document getDocument() {
//通過url請(qǐng)求返回xml字符串
SAXReader reader = new SAXReader();
Document document = reader.read(url);
//已經(jīng)有xml字符串
Document document = DocumentHelper.parseText(xmlStr);
} - 第二步獲取RootElement,即獲取AAA
public Element getRootElement(Document document) {
return document.getRootElement();
} - 接下來可以獲取一些指定節(jié)點(diǎn)的值,比如獲得AAA節(jié)點(diǎn)下BBB的值
public String gerValue(Element element) {
Element bbb = element.element("BBB");
return bbb.getTextTrim();
} - 當(dāng)然如果是DDD節(jié)點(diǎn)這種情況,他含有子標(biāo)簽,我們想獲得BBB的值
public String getValue(Element element) {
Element ddd = element.element("DDD");
return ddd.element("BBB").getTextTrim();
}
前方高能
- 如果你不清楚xml結(jié)構(gòu),希望把他的所有一切都搞清楚,福利來了:
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則是一個(gè)完整的,我們通常理解的節(jié)點(diǎn)。