XML(四)dom4j解析XML

来源:互联网 发布:java web编程技术 pdf 编辑:程序博客网 时间:2024/06/14 09:26

使用dom4j需要导入jar包

jar包下载地址:http://pan.baidu.com/s/1o65jWRw

将dom4j-1.6.1.jar包导入Eclipse


 book2.xml

 

<?xml version="1.0" encoding="UTF-8"?><书架>   <书>     <书名>JAVA</书名>      <作者>XXXXXX</作者>      <售价>23333</售价>   </书>    <书>     <书名>ANDROID</书名>      <作者>XXXXXX</作者>      <售价>23333</售价>   </书> </书架>


 

解析book2.xml这个文件。

 

方法:
获取文档的根结点:

Element root = document.getRootElement();

获取某个结点的子节点

Element element = root.element();

获取某个结点下的所有子节点:
List elements = root.elements();

遍历该结点下的所有子节点
以递归的方式进行

 

public class dom4j {public static void main(String[] args) throws Exception {// method_1();method_2();}private static void method_2() throws Exception {SAXReader reader = new SAXReader();Document document = reader.read("book2.xml");Element root = document.getRootElement();parse(root);}private static void parse(Element ele) {// 处理当前元素包含的所有属性parseAttribute(ele);// 获取当前元素包含的所有List el = ele.elements();for (Object e : el) {Element element = (Element) e;// 如果该元素的内容不是只包含字符串if (!element.isTextOnly()) {parse(element);} else {// 处理当前 元素的全部属性parseAttribute(element);// 获取当前元素的内容System.out.println(element.getQName().getName() + "-->"+ element.getText());}}}/** * 处理元素属性 *  * @param ele */private static void parseAttribute(Element ele) {List attributes = ele.attributes();for (Object e : attributes) {Attribute attribute = (Attribute) e;System.out.println(ele.getQName().getName() + "元素的"+ attribute.getQName().getName() + "属性为"+ attribute.getValue());}}private static void method_1() throws Exception {// 获取解析器SAXReader reader = new SAXReader();// 解析xml获取代表整个文档的dom对象Document document = reader.read("book2.xml");// 获取根结点Element rootElement = document.getRootElement();// 获取书名String bookName = rootElement.element("书").element("书名").getText();System.out.println("bookName--:   " + bookName);}}


 

0 0
原创粉丝点击