使用dom4j解析xml

Posted bloom_camellia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用dom4j解析xml相关的知识,希望对你有一定的参考价值。

一.代码(java代码):

1. 使用字符串路径:

    /**
     *  01
     * 使用此种方式 目录路径从根目录开始
     */
    @Test
    public void testParseXml03() {
        try {
            SAXReader reader = new SAXReader();
            Document doc = reader.read("src/config"+File.separator+"testxml.xml");
            Element root = doc.getRootElement();
            
            Element em;
            for(Iterator<?> i = root.elementIterator("value"); i.hasNext();){
                em = (Element) i.next();
                System.out.println(em.elementText("name"));
                System.out.println(em.elementText("password"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

2. 使用new File:

    /**
     * 02
     * 使用此种方式解析 
     * 使用  new File
     */
    @Test
    public void testParseXml01() {
//        System.getProperty("user.dir")  是动态获得当前文件的路径
//        File file = new File(System.getProperty("user.dir")+File.separator+"xmlOfConfig"+File.separator+"testxml.xml");
        File file;
        try {
            file = new File("xmlOfConfig"+File.separator+"testxml.xml");
            SAXReader reader = new SAXReader();
            Document doc = reader.read(file);
            Element root = doc.getRootElement();
            
            Element em ;
            for(Iterator<?> i = root.elementIterator("value"); i.hasNext();){
                em = (Element) i.next();
                System.out.println(em.elementText("name"));
                System.out.println(em.elementText("password"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

3. 使用InputStream:

    /**
     *  03
     * 使用此种方式获得InputStream, 
     * xml目录只能在src下(可以在src下新建文件夹);
     */
    @Test
    public void testParseXml02() {  
    // config目录和根目录等价,由于使用new source folder创建
        InputStream in = ParseXml.class.getClassLoader().getResourceAsStream("config"+File.separator+"testxml.xml");
        try {
            SAXReader reader = new SAXReader();
            Document doc = reader.read(in);
            Element root = doc.getRootElement();
            
            Element em ;
            for(Iterator<?> i = root.elementIterator("value"); i.hasNext();){
                em = (Element) i.next();
                System.out.println(em.elementText("name"));
                System.out.println(em.elementText("password"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

二.附(xml代码及位置示意)

1. xml文件:

<?xml version=\'1.0\' encoding=\'utf-8\'?>
<document>
  <value>
    <name >qq</name>
    <password>123</password>
  </value>
</document>

2. xml文件所在包中位置示意:

    


小菜鸟一枚,以上代码有问题之处欢迎指正,学习ing。

 

以上是关于使用dom4j解析xml的主要内容,如果未能解决你的问题,请参考以下文章

java代码用dom4j解析xml文件的简单操作

使用dom4j解析xml

Java解析XML之Dom4j

java中采用dom4j解析xml文件

XML——XML解析之DOM4J

1.使用dom4j解析XML文件