2006-12-06 | XML解析時過濾#text

xyzlotus發表於2007-12-18

在解析XML檔案時,有二種方法:
一.利用DOM.用這種方法時,會在記憶體中生成一棵樹,可遍歷多次.
二.利用SAX.用這種方法時,只能遍歷一次,每個結點會觸發相應的事件.
        我在做測試的時候,發現如果寫XML檔案的時候,每個屬性之間有換行時,在列印出結點名字時,會出現#text.
        這在有時候是必須要過濾的.去書上查了種方法.說是加:normalize();就行,但我試了不行的.
Document doc = db.parse(docFile);
doc.normalize();
        最後我找到了一種解決的方法,現在放上來:
        XML檔案內容如下:
//student.xml


       
              
                       001
                       pitiya
                       female
                       20
               

               
                        002
                        nacy
                        male
                        21
               

               
                        003
                        maya
                        male
                        22
               

       

 //test.java
//其中過濾字元的一段程式碼:

for(int i=0;i     {
      Node subNode = secNode.item(i);
      if((subNode.getNodeType())!=Node.TEXT_NODE)
      {
       for(int j=0;j<=secNode.getLength();j++){
        if((subNode.getChildNodes().item(j).getNodeType())!=Node.TEXT_NODE)
         {
           s=(String)subNode.getChildNodes().item(j).getNodeName();
           System.out.println("the last node contains:---"+s+"---");
           list.add(s);
           }
       }
       break; 
      }
     }

其實是通過這一句:if((subNode.getNodeType())!=Node.TEXT_NODE)
來判斷的,如果不是#text,則輸出這個結點下的幾個屬性的名字.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12443821/viewspace-777/,如需轉載,請註明出處,否則將追究法律責任。

相關文章