隨筆-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 閱讀(127) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 巴楚县| 三亚市| 同仁县| 新营市| 营口市| 平谷区| 澳门| 义马市| 唐河县| 陇川县| 西藏| 根河市| 慈利县| 永登县| 裕民县| 宜兰县| 公主岭市| 闽侯县| 乐陵市| 安乡县| 邵武市| 松阳县| 东港市| 英吉沙县| 拉萨市| 汝阳县| 永和县| 玉树县| 攀枝花市| 色达县| 乐清市| 策勒县| 南乐县| 察哈| 山丹县| 平阳县| 嘉鱼县| 浦东新区| 永宁县| 报价| 清水河县|