隨筆-4  評論-0  文章-0  trackbacks-0
          使用DOM方式,Java解析XML基本步驟:
          首先,我們需要建立一個解析器工廠。
          DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
          然后可以利用這個工廠來獲得一個具體的解析對象。
          DocumentBuilder builder=dbf.newDocumentBuilder();
          DocumentBuilder的Parse()方法接受一個XML文檔名作為輸入參數,返回一個Document對象。Document對象代表了 一個XML文檔的樹模型。
          Document doc=builder.parse("candiate.xml");
          使用Document對象的getElementsByTagName()方法,我們可以得到一個NodeList對象,他是XML文檔中的標簽元素 列表,可以使用NodeList對象的item()方法來得列表中的每一個Node對象。
          NodeList nl=doc.getElementsByTagName("PERSON");
          Element node=(Element)nl.item(i);
          最后,我們會使用Node對象的getNodeValue()方法提取某個標簽內的內容。
          node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue()
          完整程序代碼:
          import javax.xml.parsers.*;
          import org.w3c.dom.*;

          public class dom {
          public static void main(String args[]){
          String uri=args[0];
          try{
          DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//建立一個解析器工廠。
          DocumentBuilder builder=factory.newDocumentBuilder();//獲得一個具體的解析對象。
          Document doc=builder.parse(uri);//返回一個Document對象。
          System.out.println(doc.getImplementation());
          NodeList nl =doc.getElementsByTagName("PERSON");//得到一個NodeList對象。
          for (int i=0;i<nl.getLength();i++){
          Element node=(Element) nl.item(i);//得列表中的每一個Node對象。
          System.out.print("NAME: ");
          System.out.println (node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue());
          System.out.print("ADDRESS: ");
          System.out.println (node.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue());
          System.out.print("TEL: ");
          System.out.println (node.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue());
          System.out.print("FAX: ");
          System.out.println (node.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue());
          System.out.print("EMAIL: ");
          System.out.println (node.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue());
          System.out.println();
          }
          }catch(Exception e){
          e.printStackTrace();
          }
          }
          }

          posted on 2006-07-02 10:21 磐石 閱讀(3436) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 扶余县| 道真| 佛教| 万载县| 苏尼特左旗| 尼勒克县| 茶陵县| 嘉祥县| 遵义县| 伊吾县| 娄烦县| 平阴县| 惠来县| 阿克苏市| 平度市| 高州市| 榆林市| 苗栗县| 云林县| 山西省| 共和县| 博客| 西畴县| 临武县| 德州市| 昆山市| 乌鲁木齐市| 桐城市| 新巴尔虎左旗| 兴化市| 泽普县| 黄平县| 交口县| 平乐县| 突泉县| 大足县| 满城县| 东安县| 三江| 平顺县| 陵川县|