文章出處

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循環去掉,代碼正常運行,得到想要的結果!


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()