2013-10-18 94 views
1

我解析dom4j的xml文件。這裏的文件是什麼樣子:dom4j解析xml文件

<bug> 
<bug_id>1232131<bug_id> 
<long_desc isprivate="0"> 
<who name="Alan John">[email protected]</who> 
<thetext>asdasdasdsadasdasdasd 
asdasdad 
adasd 
adinadasbdk 
asdasdad</thetext> 
</long_desc> 

<long_desc isprivate="0"> 
<who name="Bob Dan">[email protected]</who> 
<thetext>asdasdasdsadasdasdasd 
asdasdadads 
adasdojojjtjghjthnjthntjhnjthn 
adinadasbdk 
asdasdad</thetext> 
</long_desc> 

</bug> 

有一個錯誤的標籤數long_desc,也有在XML文件中一些bug標籤。

我用dom4j來打印內容,但我失敗了,這裏是我的代碼。

File f = new File("c:/Users/ah/bugs01.xml"); 
    SAXReader reader = new SAXReader(); 
    Document doc = reader.read(f); 
    Element root = doc.getRootElement(); 
    Element foo; 
    for (Iterator i = root.elementIterator("bug"); i.hasNext();) { 
     foo = (Element) i.next(); 
     System.out.println("Text" + foo.elementText("thetext")); 
     } 

但是,我爲每個println得到了空值。爲什麼?我是dom4j的新手,希望有人能幫我解決這個問題。非常感謝

回答

2

你的XML是無效的:

<thetext>asdasdasdsadasdasdasd 
asdasdadads 
adasdojojjtjghjthnjthntjhnjthn 
adinadasbdk 
asdasdad</text> 

具有不同的啓動(<thetext>)和結束(</text>)標籤。此外,thetextlong_desc的孩子,而不是bug

+0

對不起,這是我的錯字。我將標記固定爲 – user1167910

+0

我的xml文件沒有問題。我的代碼一定有問題。 – user1167910

+0

您正在迭代bug元素,但您需要遍歷long_desc元素並*然後*從文本節點獲取文本。 –