隨筆-0  評論-15  文章-10  trackbacks-0

          package cn.zbvc.java;
          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;

          /*
           *java訪問xml文件
           *
          */

          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文件
           
           <?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-07-10 10:03 呂鵬-Roc 閱讀(793) 評論(0)  編輯  收藏 所屬分類: Java常用代碼
          主站蜘蛛池模板: 永济市| 资中县| 镇远县| 普格县| 连平县| 龙胜| 延吉市| 六枝特区| 读书| 东阿县| 自治县| 榆中县| 牟定县| 西安市| 梁河县| 从江县| 广州市| 灵宝市| 乐安县| 隆化县| 思茅市| 沭阳县| 新源县| 旺苍县| 宾阳县| 保德县| 辰溪县| 历史| 阳朔县| 永寿县| 开原市| 石阡县| 七台河市| 沙坪坝区| 嘉义市| 瓦房店市| 招远市| 安阳市| 子洲县| 玉门市| 盈江县|