所用到的Jar
这里贴出pom,需要jar文件自行下载或留言我
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
编写工具类,返回读取结果为map集合
import java.io.StringReader;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Namespace;
public class DuXMLDoc {
public static Map<String, Object> xmlElements(String xmlDoc) {
//创建一个新的字符串
StringReader read = new StringReader(xmlDoc);
//创建一个存储数据的集合
Map<String, Object> map = new LinkedHashMap<String, Object>();
try {
//表示整个文件对象
Document doc = DocumentHelper.parseText(xmlDoc);
//获取根元素
Element one = doc.getRootElement();
System.out.println("获取节点名" + one.getName());//输出根元素的名称
//得到根元素所有子元素的集合
List oneList = one.elements();
//获得XML中的命名空间
Namespace namespace = one.getNamespace();
Element element = null;
for (int i = 0; i < oneList.size(); i++) {
//依次获得根元素子元素
element = (Element) oneList.get(i);
//获取下级元素集合
List elementList = element.elements();
for (int j = 0; j < elementList.size(); j++) {
//获取当前元素对象
Element z = (Element) elementList.get(j);
//获取元素名称,获取元素值
//存入集合
map.put(z.getName(), z.getText());
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
至此,根据对应的节点名称即可获取节点的值
网友评论