文章出處
文章列表
2015-01-05
同學用dom4j寫的一個更改節點文本的方法爆出這樣一個錯誤:
代碼:
for(Iterator itr=root.elementIterator();itr.hasNext();){ Element ele=(Element)itr.next(); System.out.println((Element)ele.element("name")==null); if(ele.element("name").getText().equals(name)){ ele.element("age").setText(age); break; } }
xml:
<?xml version="1.0" encoding="gb2312"?> <Student> <name>張三</name> <age>20</age> <name>李四</name> <age>30</age> </Student>
分析:
再回顧他代碼時首先exception處理有些問題
catch (IOException e) {
e.printStackTrace();
}
catch (DocumentException e) {
e.printStackTrace();
}以至于后面無法看到錯誤的關鍵!
代碼片段是他在"student"的子節點循環的下查找“name”元素,這時候就變成"name"下查找"name",所以節點找不到。如果異常處理正常的話,應該提醒元素找不到
將for循環去掉,代碼正常運行,得到想要的結果!
文章列表
全站熱搜