隨筆-71  評論-4  文章-0  trackbacks-0
          請先將xerces.jar文件放入web應用程序的WEB-INF/lib目錄中,再編寫處理xml文件的處理器如下:
          package example;
          import java.io.*; 
          import java.util.Hashtable; 
          import org.xml.sax.*; 
          import org.xml.sax.helpers.*;

          public class SAXHandler extends DefaultHandler 
            { 
            private Hashtable table = new Hashtable(); 
            private String currentElement = null; 
            private String currentValue = null; 

            public void setTable(Hashtable table) 
              { 
              this.table = table; 
              } 

            public Hashtable getTable() 
              { 
              return table; 
              } 

            public void startElement(String nspaceURI, String localName, String qName, Attributes atts) throws SAXException {
                       // System.out.println("Starting element: " + localName);
               currentElement = localName; 
              } 

            public void characters(char[] ch, int start, int length) throws SAXException 
              { 
              currentValue = new String(ch, start, length); 
              } 

            public void endElement(String namespaceURI, String localName, String qualifiedName) throws SAXException {
                      // System.out.println("Ending element: " + localName);
                if (currentElement.equals(localName)) 

                table.put(currentElement, currentValue); //將元素名和內容放入一個Hashtable

              } 

            } 

          用下面的jsp代碼測試:
          <%@ page contentType="text/html; charset=GBK" %>

          <HTML> 
          <HEAD> 
          <TITLE>剖析XML文件web.xml</TITLE> 
          </HEAD> 
          <BODY> 
          <%@ page import="org.xml.sax.*" %> 
          <%@ page import="org.xml.sax.helpers.XMLReaderFactory" %> 
          <%@ page import="example.SAXHandler" %> 
          <%@ page import="java.util.*" %> 

          <% String fi=getServletContext().getRealPath("/")+"dir1\\dir6\\ex.xml";   
           XMLReader  parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
           SAXHandler handler = new SAXHandler(); 
           parser.setContentHandler(handler);
           parser.parse(fi); 
           Hashtable hashTable = handler.getTable(); 
           Enumeration e=hashTable.keys();
           while(e.hasMoreElements()){
               String key=(String)e.nextElement();
               out.println(key+": "+hashTable.get(key)+"<br>");
          }
              
          %>

          ex.xml文件如下:
          <?xml version="1.0" encoding="GB2312" standalone="no" ?>
          <!DOCTYPE booklist [
          <!ELEMENT booklist (book)+>
          <!ELEMENT book     (書名,定價,讀者交流信箱)>
          <!ELEMENT 書名     (#PCDATA)>
          <!ELEMENT 定價     (#PCDATA)>
          <!ELEMENT 讀者交流信箱 (#PCDATA)>
          <!ENTITY  QA-email  "zz3zcwb@sina.com">
          ]>

          <booklist>
           <book>
             <書名>一起玩OfficeXP</書名>
             <定價>580元</定價>
             <讀者交流信箱>&QA-email;</讀者交流信箱>
           </book> 
          </booklist>
          posted on 2006-01-12 12:59 zjw_albert 閱讀(130) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 禄劝| 玉门市| 新源县| 绥芬河市| 长阳| 汽车| 神木县| 房山区| 德庆县| 洪洞县| 南部县| 千阳县| 泸定县| 调兵山市| 平定县| 神池县| 梅州市| 贺州市| 疏附县| 霍邱县| 岳阳县| 仁化县| 蒲城县| 资兴市| 曲靖市| 永城市| 苍溪县| 通江县| 肇庆市| 寿光市| 鱼台县| 海兴县| 循化| 泸西县| 岳阳市| 磐安县| 格尔木市| 德令哈市| 长乐市| 乡城县| 原平市|