1. 程式人生 > >使用dom4j解析xml

使用dom4j解析xml

iterator 問題 getclass etc tac iter throws xml文件 encoding

一.代碼(java代碼):

1. 使用InputStream:

    /**
     *  02
     * 使用此種方式獲得InputStream, 
     * xml目錄只能在src下(可以在src下新建文件夾);
     */
    @Test
    public void testParseXml02() {
        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 ;
       //value 為二級標簽,name和password為value內標簽
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 (DocumentException e) { e.printStackTrace(); } }

2. 使用new File:

    /**
     * 02
     * 使用此種方式解析 
     * 使用  new File
     
*/ @Test public void testParseXml01() throws FileNotFoundException { // System.getProperty("user.dir") 是動態獲得當前文件的路徑 File file = new File(System.getProperty("user.dir")+File.separator+"xmlOfConfig"+File.separator+"testxml.xml"); try { 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 (DocumentException e) { e.printStackTrace(); } }

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

1. xml文件:

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

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

技術分享

小菜鳥一枚,以上代碼有問題之處歡迎指正,學習ing。

使用dom4j解析xml