以JDOM方式解析
一、准备工作
1.导入jdom的jar包
2.SAXBuilder saxBuilder = new SAXBuilder(); //创建SAXBuilder对象
3.Document document = saxBuilder.build(in); //创建document对象 (导入的是org.jdom….下的包)。build()方法有重载。这里采用传入文件流的方式 InputStream in = new FileInputStream(“src/res/books.xml”);
二、解析XML
4.Element rootElement = document.getRootElement(); //获取根节点
5.List bookList = rootElement.getChildren(); //获取节点下的子节点集合
for (Element book : bookList) { //遍历子节点
List attrList = book.getAttributes(); //获取每个子节点的属性集合
for (Attribute attribute : attrList) { //遍历属性集合
String attrName = attribute.getName(); //获取属性名
String attrValue = attribute.getValue(); //获取属性值
System.out.println(attrName + ” = ” + attrValue);
}
List childElementList = book.getChildren(); //同样的方法获取子节点的子节点
for (Element child : childElementList) { //遍历
System.out.println(child.getName() + ” = ” + child.getValue());
}}
注意:JDOM解析XML时的乱码问题
- 方法一:修改XML中<?xml version=”1.0” encoding=”UTF-8”?>” 的encoding属性值,对中文支持较好的有UTF-8,GBK,gb2312 等
- 方法二:在创建文件输入流时用InputStreamReader进一步包装输入文
件流
1.InputStream in = new FileInputStream(filePath);
2.InputStreamReader isr = InputStreamReader(InputStream in , charset charsetName); //将charsetName设为对中文支持较好的有UTF-8,GBK,gb2312 等
3.Document document = saxBuilder.build(isr);