乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      XML代碼-如何使用DOM解析xml,打印xml文檔信息工具類

       N_once 2008-01-23

      http://blog.csdn.net/l_010204019/archive/2007/08/14/1742694.aspx
      學(xué)習(xí)時(shí)仿照書上例子自己練習(xí)編寫的.加上了很多注釋,應(yīng)該以后的工作學(xué)習(xí)能用上.也算資料儲備吧.

      一.使用DOM來解析xml文檔.
      文件:DepartmentInfo.java,Department.xml.
      說明:將xerces2.9的xercesImp.jar導(dǎo)入Project.

      DepartmentInfo.java
      import java.io.File;
      import java.io.IOException;

      import javax.xml.parsers.DocumentBuilder;
      import javax.xml.parsers.DocumentBuilderFactory;
      import javax.xml.parsers.ParserConfigurationException;

      import org.w3c.dom.*;
      import org.xml.sax.SAXException;


      public class DepartmentInfo
      {
          
      public static void main(String [] args)
          
      {
              
      //獲得一個(gè)工廠類的實(shí)例
              DocumentBuilderFactory bdf =DocumentBuilderFactory.newInstance();
              
      try
              
      {
                  
      //獲得解析器封裝的DOM解析器
                  DocumentBuilder db=bdf.newDocumentBuilder();
                  
      //指定要分析的xml文檔
                  File f=new File("Department.xml");
                  
      //獲得xml文檔的對象
                  Document dep=db.parse(f);
                    System.out.println( dep.getDocumentElement().getTagName());
                  
      //**************以上步驟是所有使用DOM解析xml文檔所必須的3步驟************//  
                  
                  
      //這里是獲得所有dep下的所有名為deopartment,并且按照在xml文檔出現(xiàn)次序的Node集合  
                  NodeList nl=dep.getElementsByTagName("department") ;
                  
      //獲得該集合的長度
                  int len=nl.getLength();
                  
      for(int i=0;i<len;i++)
                  
      {
                    
      //獲取該集合第i個(gè)出現(xiàn)的Node對象
                    Node nod=nl.item(i);
                    
      //將起強(qiáng)制轉(zhuǎn)換為其父類Element
                    Element elNod=(Element) nod;
                    
      //這里文本部分為文本節(jié)點(diǎn).必須使用其自身的getNodeValue()方法才能返回值
                    String depname=elNod.getElementsByTagName("Zh").item(0).getChildNodes().item(0).getNodeValue();
                    String depadress
      =elNod.getElementsByTagName("depadress").item(0).getChildNodes().item(0).getNodeValue();
                    String depInfo
      =elNod.getElementsByTagName("depInfo").item(0).getChildNodes().item(0).getNodeValue();
                    
                    
                    
      //**********以下是打印格式*****************************************///
                    System.out.print("部門名稱:"+depname);
                    System.out.println(
      "  "+elNod.getElementsByTagName("En").item(0).getChildNodes().item(0).getNodeValue());
                    System.out.println(
      "部門所在地:"+depadress);
                    System.out.println(
      "部門信息:"+depInfo);
                    System.out.println(
      "------------------------------------------------");
                    
                    
                  }

              }

              
      catch (ParserConfigurationException e)
              
      {
                  
      // TODO 自動生成 catch 塊
                  e.printStackTrace();
              }

              
      catch (SAXException e)
              
      {
                  
      // TODO 自動生成 catch 塊
                  e.printStackTrace();
              }

              
      catch (IOException e)
              
      {
                  
      // TODO 自動生成 catch 塊
                  e.printStackTrace();
              }

              
          }


      }


      Department.xml
      <?xml version="1.0" encoding="gb2312"?>
      <?xml-stylesheet type="text/xsl" href="Department.xsl"?>

      <department>
          
      <depname>
              
      <Zh>大大發(fā)</Zh>
              
      <En>BigandRich</En>
          
      </depname>
          
      <depadress>廣州市中山三路</depadress>
          
      <depInfo>經(jīng)營糧油大米食品</depInfo>
          
      </department>

      二 使用DOM解析器遞歸遍歷DOM節(jié)點(diǎn)樹 (最近修改 by 07-8-14)
      文件:XmlInfoPrint.java,Books.xml.
      說明:將xerces2.9的xercesImp.jar導(dǎo)入Project.
                    XmlInfoPrint.java (可以作為工具類來使用,打印出xml文檔基本信息.可以根據(jù)以后項(xiàng)目需要再完善功能)
      import java.io.File;
      import java.io.IOException;

      import javax.xml.parsers.DocumentBuilder;
      import javax.xml.parsers.DocumentBuilderFactory;
      import javax.xml.parsers.ParserConfigurationException;

      import org.w3c.dom.*;
      import org.xml.sax.SAXException;



      public class XmlInfoPrint
      {
          
      public static void printInfomation(Node node)
          
      /**
           * 打印元素節(jié)點(diǎn)名稱以及其值,將不顯示非元素文本的文本節(jié)點(diǎn)
           
      */

          
      {
              
      if(node.getNodeName()!="#text"//name="#text"的文本節(jié)點(diǎn)不作為輸出
              System.out.println(node.getNodeName()+" :" );
              
      if(node.getNodeValue()!=null||node.getNodeName()=="#text")
              System.out.println(node.getNodeValue());
          }

          
          
      public static void searchNode(Node node)
          
      /**
           * 遍歷文檔所有節(jié)點(diǎn)元素,并將其通過pritnInfomation(Node node)來打印出來
           
      */

          
      {
              
      short type=node.getNodeType();//獲取節(jié)點(diǎn)元素的類型
              switch (type)
              
      {    
              
      case Node.PROCESSING_INSTRUCTION_NODE:
                  printInfomation(node);
                  
      break;
              
      case Node.ELEMENT_NODE:
                  printInfomation(node);
                  
      //若元素節(jié)點(diǎn)有屬性節(jié)點(diǎn)則將其打印出來
                  if(node.hasAttributes())
                  
      {
                        NamedNodeMap attr
      =node.getAttributes();//獲取節(jié)點(diǎn)的屬性節(jié)點(diǎn)的集合,NamedNodeMap是live的
                        int len=attr.getLength();
                        
      for(int i=0;i<len;i++)
                        
      {
                            System.out.print(
      "ID="+attr.item(i).getNodeValue());
                        }

                            
                  }

                  
                  
      break;
              
      case Node.TEXT_NODE:
                  printInfomation(node);
                  
      break;
                  
              
      default:
                  
      break;
              }

              Node child
      =node.getFirstChild();
              
      while(child!=null)
              
      {
                  searchNode(child);
                  child
      =child.getNextSibling();
              }

          }

          
      /**
           * 
      @param args
           
      */

          
      public static void main(String[] args)
          
      {
              
      // TODO 自動生成方法存根
              DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();
              
      try
              
      {
                  DocumentBuilder db
      =dbf.newDocumentBuilder();
                  File f
      =new File("Books.xml");
                  Document book
      =db.parse(f);
                  XmlInfoPrint.searchNode(book);
              }

              
      catch (ParserConfigurationException e)
              
      {
                  
      // TODO 自動生成 catch 塊
                  e.printStackTrace();
              }

              
      catch (SAXException e)
              
      {
                  
      // TODO 自動生成 catch 塊
                  e.printStackTrace();
              }

              
      catch (IOException e)
              
      {
                  
      // TODO 自動生成 catch 塊
                  e.printStackTrace();
              }


          }


      }


      Books.xml
      <?xml version="1.0" encoding="gb2312"?> 
      <?xml-stylesheet type="text/xsl" href="book.xsl"?>

      <books>
          
      <book id="0001">
              
      <名稱>Eclipse從入門到精通(第2版珍藏版)(附盤)</名稱>
              
      <作者>陳剛</作者>
              
      <出版社>清華大學(xué)出版社</出版社>
              
      <價(jià)格>¥46.70</價(jià)格>
          
      </book>
          
      <book id="0002">
              
      <名稱>Java編程思想(第4版)(中文版)</名稱>
              
      <作者>(美)Bruce Eckel</作者>
              
      <出版社>機(jī)械工業(yè)出版社</出版社>
              
      <價(jià)格>¥88.20</價(jià)格>
          
      </book>
          
      <book id="0003">
              
      <名稱>VC++深入詳解(附光盤)/孫鑫作品系列</名稱>
              
      <作者>孫鑫 余安萍</作者>
              
      <出版社>電子工業(yè)出版社</出版社>
              
      <價(jià)格>¥67.70</價(jià)格>
          
      </book>
          
      <book id="0004">
              
      <名稱>WebWork in Action中文版</名稱>
              
      <作者>(美)Patrick Lightbody、Jason Carreira</作者>
              
      <出版社>電子工業(yè)出版社</出版社>
              
      <價(jià)格>¥35.40</價(jià)格>
          
      </book>
          
      <book id="0005">
              
      <名稱>
              Java Web開發(fā)詳解--XML+XSLT+Servlet+JSP深入剖析與實(shí)例應(yīng)用(附光盤)/孫鑫作品系列   
              
      </名稱>
              
      <作者>孫鑫</作者>
              
      <出版社>電子工業(yè)出版社</出版社>
              
      <價(jià)格>¥73.90</價(jià)格>
          
      </book>
          
      </books>


      Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1741467


        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多