Maven
<!-- DOM4J-->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
DOM4J方法
public void dom4J(String xml) throws DocumentException {
Document doc = null;
try {
doc = DocumentHelper.parseText(xml); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator("Header"); // 获取根节点下的子节点Header
// 遍历Header节点
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
String RequestId = recordEle.elementTextTrim("RequestId"); // 拿到Header节点下的子节点RequestId值
}
Iterator iters2 = rootElt.elementIterator("Body"); ///获取根节点下的子节点body
// 遍历body节点
while (iters2.hasNext()) {
Element recordEless = (Element) iters2.next();
String ExchangeData = recordEless.elementTextTrim("ExchangeData"); // 拿到body节点下的子节点result值
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
另外提供一个不是xml格式但以键值对方式出现的取值方法
public static String findMsg(String forArgXml, String name)throws Exception {
String a = "<" + name + ">";
String c = "</" + name + ">";
int b = forArgXml.indexOf(a);
int e = forArgXml.indexOf(c);
int d = name.length() + 2;
if (forArgXml.length() > e && e > b + d) {
return forArgXml.substring(b + d, e).trim();
} else {
return null;
}
}
public static void main(String[] args) throws Exception {
String data = "<name>张三</name><age>55</age>";
// 打印结果为张三
System.out.println(findMsg(data,"name"));
}