zoukankan      html  css  js  c++  java
  • DOM4J方式解析XML文件

    dom4j介绍

      dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory

      dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。

       dom4j下载地址:http://download.csdn.net/detail/ww6055/8880397

    dom4j的使用

      下载了dom4j项目之后,解压缩,将其jar包(我的当前版本叫做dom4j-1.6.1.jar)加入class path下面。

      (Properties->Java Build Path -> Add External JARs...)。

      之后就可以使用其提供的API进行编程。

    程序实例:

    books.xml文件:(在src/res文件夹下)

    Book.java实体类:

    public class Book {
        private String id;
        private String name;
        private String price;
        private String author;
        private String year;
        private String language;
        public String getLanguage() {
            return language;
        }
        public void setLanguage(String language) {
            this.language = language;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getPrice() {
            return price;
        }
        public void setPrice(String price) {
            this.price = price;
        }
        public String getAuthor() {
            return author;
        }
        public void setAuthor(String author) {
            this.author = author;
        }
        public String getYear() {
            return year;
        }
        public void setYear(String year) {
            this.year = year;
        }
    }

    DOM4J解析XML文件Dom4jTest.java(注:文件中需要导入的Attribute、Document、Element、SAXReader都是DOM4J包下的):

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.util.Iterator;
    import java.util.List;
    import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;


    public class Dom4jTest {
        public static void main(String[] args) {
            //通过SAXReader的对象reader的read方法加载books.xml文件,获取Document对象
            SAXReader reader = new SAXReader();
            try {
                Document doc=reader.read(new File("src/res/books.xml"));
                //通过Document对象获取根节点
                Element bookstore=doc.getRootElement();
                //通过element对象的elementIterator方法获取迭代对象
                Iterator it= bookstore.elementIterator();
                //遍历迭代器,获取根节点中的信息
                while(it.hasNext()){
                    System.out.println("=============开始遍历某一本书=============");
                    Element book=(Element) it.next();
                    List<Attribute> bookAttr=book.attributes();
                    for(Attribute attr:bookAttr){
                        System.out.println("属性名:"+attr.getName()+"---------------属性值:"+attr.getValue());
                    }
                    Iterator itt = book.elementIterator();
                    while(itt.hasNext()){
                        //book节点下的任意一个子节点
                        Element bookChild = (Element) itt.next();
                        System.out.println("节点名:"+bookChild.getName()+" ***** 节点值:"+bookChild.getStringValue());
                    }
                    System.out.println("=============结束遍历某一本书=============");
                }
                
            } catch (DocumentException e) {
                e.printStackTrace();
            }
        }
    }

  • 相关阅读:
    184. Department Highest Salary【leetcode】sql,join on
    181. Employees Earning More Than Their Managers【leetcode】,sql,inner join ,where
    178. Rank Scores【leetcode】,sql
    177. Nth Highest Salary【leetcode】,第n高数值,sql,limit,offset
    176. Second Highest Salary【取表中第二高的值】,sql,limit,offset
    118. Pascal's Triangle【LeetCode】,java,算法,杨辉三角
    204. Count Primes【leetcode】java,算法,质数
    202. Happy Number【leetcode】java,hashSet,算法
    41. First Missing Positive【leetcode】寻找第一个丢失的整数,java,算法
    删除
  • 原文地址:https://www.cnblogs.com/aa6055blog/p/4630414.html
Copyright © 2011-2022 走看看