解析XML 之JDOM 方法
程序员文章站
2022-05-28 12:17:34
...
要使用JDOM 解析xml 需要下载JDOM jar包 ( 下载地址:http://jdom.org/downloads/index.html)
JDOM是Jdom是用Java语言读、写、操作XML的新API函数的一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。
JDOM 解析xml 案例:
//准备工作
//1. 创建SAXBuilder
SAXBuilder saxBuilder = new SAXBuilder();
//2. 创建一个输入流,将xml文件加载到输入流中
try {
InputStream inputStream = new FileInputStream("test.xml");
//解决文档读取出现乱码的问题,将读取的xml文件按照UTF-8的格式加载如输入流中。
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
Document document= saxBuilder.build(inputStreamReader);
//获取xml文档的根目录
Element root= document.getRootElement();
//获取根目录下的所有子节点
List<Element> studentsList= root.getChildren();
for(Element student: studentsList) {
System.out.println("开始解析第 " + ( studentsList.indexOf(student) + 1 ) + " 个学生 ");
// 解析student 属性名和属性值
// 不清楚属性具体信息
List<Attribute> attriLists = student.getAttributes();
for(Attribute attr : attriLists) {
System.out.print("开始解析 第 " + attriLists.indexOf(attr) + 1);
System.out.println(": " + attr.getName() + " = " + attr.getValue());
}
// 知道属性名称,获取属性值
Attribute attr_id= student.getAttribute("id");
System.out.println("属性 id = " +attr_id.getValue());
//解析 student下节点名和节点值
List<Element> studentChild= student.getChildren();
for(Element e:studentChild) {
System.out.println( "节点 " + e.getName() + " = " + e.getValue());
}
}
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
Note:
所使用的类均来自于JDOM 包。