JDOM技术是针对JAVA的一种DOM解析方式。
JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,对于熟练使用Collections类的人来说,十分方便。
JDOM解析XML步骤:
1. 首先需要添加JDOM的jar包。点击这里跳转至JDOM官网
2. 创建一个saxBuilder的对象
3. 创建一个输入流,将xml文件加载到输入流中
4. 通过saxBuilder的build方法将输入流加载到SAXBuilder中
5. 通过document对象获取xml文件的根节点
6. 获取根节点下的子节点的集合
7. 遍历获取属性值
同样,看例子:
public class JDOMTest {
private static List<Book> booksList = new ArrayList<Book>();
public static void main(String[] args) {
//1、创建一个saxBuilder的对象
SAXBuilder saxBuilder = new SAXBuilder();
InputStream in;
try {
//2、创建一个输入流,将xml文件加载到输入流中
in = new FileInputStream("src/res/books.xml");
//3、通过saxBuilder的build方法将输入流加载到SAXBuilder中
Document document = saxBuilder.build(in);
//4、通过document对象获取xml文件的根节点
Element rootElement = document.getRootElement();
//5、获取根节点下的子节点的集合
List<Element> bookList = rootElement.getChildren();
//继续进行解析
for (Element book : bookList) {
System.out.println("=========开始解析第"+ (bookList.indexOf(book) + 1) + "本书===========");
//解析book的属性
List<Attribute> attrList = book.getAttributes();
//遍历attrList
for (Attribute attr : attrList) {
System.out.println("属性值:"+attr.getName()+"---属性值:"+attr.getValue());
}
//对book节点的字节点的节点名和节点值的遍历
List<Element> bookChilds = book.getChildren();
for (Element bookChild : bookChilds) {
System.out.println("节点名:" + bookChild.getName() + "---节点值+ "+bookChild.getValue());
}
System.out.println("=========结束解析第"+ (bookList.indexOf(book) + 1) + "本书===========");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}