import org.w3c.dom.*;
          import javax.xml.parsers.*;
          import java.io.*;
          public class Parse {
           //Document可以看作是XML在內(nèi)存中的一個鏡像,那么一旦獲取這個Document 就意味著可以通過對
            //內(nèi)存的操作來實現(xiàn)對XML的操作,首先第一步獲取XML相關(guān)的Document
             private Document doc=null;
           
            public void init(String xmlFile) throws Exception{
             //很明顯該類是一個單例,先獲取產(chǎn)生DocumentBuilder工廠
             //的工廠,在通過這個工廠產(chǎn)生一個DocumentBuilder,
             //DocumentBuilder就是用來產(chǎn)生Document的
             DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
             DocumentBuilder db=dbf.newDocumentBuilder(); 
             //這個Document就是一個XML文件在內(nèi)存中的鏡像
             doc=db.parse(new File(xmlFile));
            }
            //該方法負責把XML文件的內(nèi)容顯示出來
           
            public void viewXML(String xmlFile) throws Exception{
             this.init(xmlFile);
             //在xml文件里,只有一個根元素,先把根元素拿出來看看
             Element element=doc.getDocumentElement();
             System.out.println("根元素為:"+element.getTagName());
            
             NodeList nodeList=doc.getElementsByTagName("story");
             System.out.println("story節(jié)點鏈的長度:"+nodeList.getLength());
            
             Node fatherNode=nodeList.item(0);
             System.out.println("父節(jié)點為:"+fatherNode.getNodeName());
            
             //把父節(jié)點的屬性拿出來
             NamedNodeMap attributes=fatherNode.getAttributes();
            
          //   for(int i=0;i<attributes.getLength();i++){
          //    Node attribute=attributes.item(i);
          //    System.out.println("person的屬性名為:"+attribute.getNodeName()+" 相對應(yīng)的屬性值為:"+attribute.getNodeValue());
          //   }

             NodeList childNodes = fatherNode.getChildNodes();
             System.out.println(childNodes.getLength());
             for(int j=0;j<2;j++){
              Node childNode=childNodes.item(j);
              //如果這個節(jié)點屬于Element ,再進行取值
              if(childNode instanceof Element){
               //System.out.println("子節(jié)點名為:"+childNode.getNodeName()+"相對應(yīng)的值為"+childNode.getFirstChild().getNodeValue());
               System.out.println("子節(jié)點名為:"+childNode.getNodeName()+"相對應(yīng)的值為"+childNode.getFirstChild().getNodeValue());
              }
             }
            
            }
           
            public static void main(String[] args)throws Exception{
             Parse parse=new Parse();

           //我的XML文件
             parse.viewXML("D:/Tomcat 5.5/webapps/ROOT/story/best_story.xml");
            }
          }

          posted on 2008-07-25 17:39 lzj520 閱讀(280) 評論(0)  編輯  收藏 所屬分類: 個人學習日記
          主站蜘蛛池模板: 界首市| 平舆县| 博罗县| 宁国市| 犍为县| 延庆县| 花莲市| 兴城市| 浮梁县| 法库县| 南昌县| 安国市| 蒲城县| 古蔺县| 凤凰县| 偏关县| 福海县| 南城县| 怀安县| 蕲春县| 成武县| 高雄县| 竹山县| 改则县| 南汇区| 平原县| 绥德县| 庄浪县| 杭锦旗| 无为县| 阜宁县| 灌云县| 嘉定区| 义乌市| 手游| 泾阳县| 冷水江市| 越西县| 万盛区| 大庆市| 元朗区|