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

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


          網站導航:
           
          主站蜘蛛池模板: 鹤庆县| 德江县| 潮州市| 舒兰市| 新密市| 同德县| 双桥区| 家居| 海门市| 鲁甸县| 临清市| 重庆市| 霍林郭勒市| 阳西县| 临夏县| 永济市| 莆田市| 衡东县| 新宁县| 长泰县| 涞水县| 黄骅市| 香格里拉县| 蓝田县| 双桥区| 霍林郭勒市| 潞城市| 东方市| 勃利县| 湟中县| 乳山市| 湾仔区| 新安县| 隆子县| 诏安县| 信阳市| 电白县| 和田市| 德令哈市| 临漳县| 肥西县|