yooli88

          從 csdn看到的一些很有用的代碼 灰常感謝afgasdg了 轉帖請注明afgasdg

          java訪問xml文件
          Java code

          import java.io.*;
          import javax.xml.parsers.DocumentBuilder;
          import javax.xml.parsers.DocumentBuilderFactory;
          import org.w3c.dom.Document;
          import org.w3c.dom.Element;
          import org.w3c.dom.Node;
          import org.w3c.dom.NodeList;

          public class xmljava
          {

          public static void main(String args[])
              {   
                    Element element
          =null;
                    File f
          =new File("a.xml");
                    DocumentBuilder db
          =null;        //documentBuilder為抽象不能直接實例化(將XML文件轉換為DOM文件)
                    DocumentBuilderFactory dbf=null;
               
          try{
                  
                    dbf
          = DocumentBuilderFactory.newInstance(); //返回documentBuilderFactory對象  
                    db =dbf.newDocumentBuilder();//返回db對象用documentBuilderFatory對象獲得返回documentBuildr對象

                    Document dt
          = db.parse(f); //得到一個DOM并返回給document對象
                    element = dt.getDocumentElement();//得到一個elment根元素
                   
                    System.out.println(
          "根元素:"+element.getNodeName()); //獲得根節點

                  NodeList childNodes
          =element.getChildNodes() ;    // 獲得根元素下的子節點
             
               
          for (int i = 0; i < childNodes.getLength(); i++)     // 遍歷這些子節點

             {      
                 Node node1
          = childNodes.item(i); // childNodes.item(i); 獲得每個對應位置i的結點

              
          if ("Account".equals(node1.getNodeName()))
                {
                                 
          // 如果節點的名稱為"Account",則輸出Account元素屬性type
                System.out.println("\r\n找到一篇賬號. 所屬區域: "   + node1.getAttributes().getNamedItem        ("type").getNodeValue() + ". ");
                NodeList nodeDetail
          = node1.getChildNodes();   // 獲得<Accounts>下的節點
                for (int j = 0; j < nodeDetail.getLength(); j++)
                 {  
          // 遍歷<Accounts>下的節點
                    Node detail = nodeDetail.item(j);    // 獲得<Accounts>元素每一個節點
                      if ("code".equals(detail.getNodeName()))   // 輸出code
                      System.out.println("卡號: " + detail.getTextContent());
                      
          else if ("pass".equals(detail.getNodeName())) // 輸出pass
                          System.out.println("密碼: " + detail.getTextContent());
                      
          else if ("name".equals(detail.getNodeName())) // 輸出name
                          System.out.println("姓名: " + detail.getTextContent());
                      
          else if ("money".equals(detail.getNodeName())) // 輸出money
                           System.out.println("余額: "+ detail.getTextContent());
               
                  }
                }

              }
          }

          catch(Exception e){System.out.println(e);}
             
          }
          }


          XML code
          <?xml version="1.0" encoding="gbk"?> <Accounts> <Account type="by0003"> <code>100001</code> <pass>123</pass> <name>李四</name> <money>1000000.00</money> </Account> <Account type="hz0001"> <code>100002</code> <pass>123</pass> <name>張三</name> <money>1000.00</money> </Account> </Accounts>

          posted on 2011-04-06 18:49 迷茫在java的世界里 閱讀(191) 評論(0)  編輯  收藏 所屬分類: 學習資料

          主站蜘蛛池模板: 台中县| 桐梓县| 景东| 奉新县| 腾冲县| 望江县| 盐源县| 枞阳县| 麟游县| 确山县| 金沙县| 五常市| 丰城市| 资中县| 北票市| 马边| 绵竹市| 莆田市| 隆昌县| 和田市| 堆龙德庆县| 遂溪县| 双牌县| 麻栗坡县| 小金县| 博罗县| 呼玛县| 昌吉市| 五莲县| 石柱| 浪卡子县| 上饶市| 板桥市| 巴东县| 广平县| 龙游县| 威远县| 陆良县| 陇西县| 通州区| 泰和县|