JDOM是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包。下面咱们来看一下怎么使用
JDOM来解析XML文档。java
首先下载JDOM的jar包,并导入到工程中。具体的操做方法这里再也不赘述了,大佬们必定不会在意这个东西。
下面就在说一说具体的操做步骤吧。dom
1 . 建立一个SAXBuilder对象。工具
SAXBuilder saxBuilder = new SAXBuilder();
2 . 调用SAXBuilder对象的build()方法。(Document对象是org.jdom2.Document包下的)ui
Document document = saxBuilder.build("book.xml");
3 . 调用document对象的getRootElement()方法获取根节点。code
Element element = document.getRootElement();
4 . 调用Element对象的getChildren()方法获取根节点的子节点。xml
List<Element> books = element.getChildren();
5 . 调用getAttributes()方法或者getAttributeValue("id")方法获取节点属性。对象
String value = book.getAttributeValue("id"); //List<Attribute> bookAttrs = book.getAttributes();
6 . 调用getChildren()方法或者getChild()方法再次得到其子节点。element
List<Element> bookChildren = book.getChildren();
下面是一个简单的实例,供你们参考。文档
book.xmlget
<?xml version="1.0" encoding="UTF-8" ?> <bookstore> <book id="1"> <name>111</name> <author>222</author> </book> <book id="2"> <name>333</name> <author>444</author> </book> </bookstore>
jdom.java
package com.lpp.test; import java.io.IOException; import java.util.List; import org.jdom2.Attribute; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.SAXBuilder; public class jdom { public static void main(String[] args) { // TODO Auto-generated method stub SAXBuilder saxBuilder = new SAXBuilder(); try { Document document = saxBuilder.build("book.xml"); Element element = document.getRootElement(); List<Element> books = element.getChildren(); for (Element book : books) { System.out.println("开始解析!第" + (books.indexOf(book) + 1) + "本"); // String value = book.getAttributeValue("id"); // System.out.println("id:"+value); List<Attribute> bookAttrs = book.getAttributes(); for (Attribute bookAttr : bookAttrs)// 和上面的效果同样 { String attrName = bookAttr.getName(); String attrValue = bookAttr.getValue(); System.out.println("属性" + attrName + ":" + attrValue); } List<Element> bookChildren = book.getChildren(); for (Element bookChild : bookChildren) { String bookChildElementName = bookChild.getName(); String bookChildElementValue = bookChild.getValue(); System.out.println("节点" + bookChildElementName + ":" + bookChildElementValue); } System.out.println("结束解析!第" + (books.indexOf(book) + 1) + "本"); } } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }