隨筆-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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 五大连池市| 忻城县| 七台河市| 久治县| 永清县| 昌宁县| 神农架林区| 若尔盖县| 东港市| 苍梧县| 建水县| 宕昌县| 美姑县| 府谷县| 德江县| 白银市| 抚顺市| 依安县| 寻甸| 托克逊县| 崇仁县| 望奎县| 定边县| 开阳县| 建阳市| 平泉县| 永川市| 石家庄市| 石景山区| 玛沁县| 蒙城县| 康马县| 鱼台县| 渭源县| 缙云县| 宁明县| 阳山县| 乌什县| 泰顺县| 全南县| 巴东县|