俊星的BLOG

          #

          COMMON DIGESTER之我的PLUGIN

               摘要: Common Digester附帶了一個插件機制,可以實現很好的地址,下面是我的一個簡單實現: 1、業務接口: public interface Transform {     public String transform(String s); } 2、業務接口的實現類: publ...  閱讀全文

          posted @ 2009-05-02 15:51 俊星 閱讀(199) | 評論 (0)編輯 收藏

          JAVA SAX之我的Digester

               摘要: Apache Common Digester是一個很優秀的XML解析工具,居于SAX技術,下面是我一個簡單實現(點擊下載源代碼): 1、類圖: 2、規則定義: 2-1、MyRule抽象類: package mydigest; import org.xml.sax.Attributes; /** *//**  * 規則抽象類...  閱讀全文

          posted @ 2009-05-01 01:27 俊星 閱讀(683) | 評論 (0)編輯 收藏

          JAVA SAX之簡單實用

          SAX是Simple API for XML的縮寫(官網:saxproject),一個用來解決大型XML文檔讀取的接口,下面是我的簡單試用:
          import java.io.FileInputStream;

          import javax.xml.parsers.SAXParser;
          import javax.xml.parsers.SAXParserFactory;

          import org.xml.sax.Attributes;
          import org.xml.sax.InputSource;
          import org.xml.sax.SAXException;
          import org.xml.sax.XMLReader;
          import org.xml.sax.helpers.DefaultHandler;

          /**
           * 需要繼承自DefaultHandler
           * 
          @author kinkding
           
          */

          public class Test extends DefaultHandler {
              
          protected StringBuffer bodyText = new StringBuffer();
              
          private int level = 0;
              
              
          /** 開始解析元素 */
              
          public void startElement(String namespaceURI, String localName, String fullName, Attributes attributes)
                      
          throws SAXException {
                  System.out.print(getPrefix() 
          + "<" + fullName + "(");
                  
          for (int i = 0; i < attributes.getLength(); i++{
                      String temp 
          = attributes.getQName(i);
                      String value 
          = attributes.getValue(i);
                      System.out.print(temp 
          + ":" + value + " ");
                  }

                  System.out.println(
          ")>");
                  level
          ++;
              }

              
              
          /** 元素間內容的處理 */
              
          public void characters(char buffer[], int start, int length) throws SAXException {
                  bodyText.append(buffer, start, length);
              }

              
              
          /** 結束元素的解析 */
              
          public void endElement(String namespaceURI, String localName, String fullName) throws SAXException {
                  System.out.println(getPrefix() 
          + bodyText.toString().trim());
                  bodyText 
          = new StringBuffer();
                  level
          --;
                  System.out.println(getPrefix() 
          + "<" + fullName + ">");
              }


              
          private String getPrefix() {
                  String s 
          = "";
                  
          for (int i = 0; i < level; i++{
                      s 
          += " ";
                  }

                  
          return s;
              }


              
          public XMLReader getReader() throws Exception {
                  SAXParser parser 
          = SAXParserFactory.newInstance().newSAXParser();
                  XMLReader reader 
          = parser.getXMLReader();
                  reader.setDTDHandler(
          this);
                  reader.setContentHandler(
          this);
                  reader.setEntityResolver(
          this);
                  reader.setErrorHandler(
          this);
                  
          return reader;
              }


              
          public static void main(String[] args) throws Exception {
                  Test t 
          = new Test();
                  XMLReader reader 
          = t.getReader();
                  reader.parse(
          new InputSource(new FileInputStream("test.xml")));
              }

          }

          test.xml文件內容如下:
          <?xml version='1.0'?>
          <table name="job" code="1234">
              
          <tr>我的家</tr>
              
          <td colspan="2">生命就像一條大河</td>
              
          <td colspan="3">goodjob</td>
          </table>

          輸出如下:
          <table(name:job code:1234 )>
           <tr()>
            我的家
           <tr>
           <td(colspan:
          2 )>
            生命就像一條大河
           <td>
           <td(colspan:
          3 )>
            goodjob
           <td>
           
          <table>

          posted @ 2009-04-30 20:29 俊星 閱讀(169) | 評論 (0)編輯 收藏

          JAVAMAIL之我的SMTP客戶端實現

               摘要: JAVAMAIL源代碼中包含了對于SMTP發郵件的實現,下面是我的一個簡單實現: 1、BASE64編碼類: package mymail; public class MyBase64Encoder {     public static byte[] encode(byte[]...  閱讀全文

          posted @ 2009-04-26 01:19 俊星 閱讀(1056) | 評論 (0)編輯 收藏

          JAVA MAIL之簡單事件

               摘要: JAVA MAIL 中包含了連接、計數等事件機制,下面的對連接事件的一個簡單實現: 1、事件基類: package myevent; import java.util.EventObject; public abstract class MyMailEvent extends EventObject {...  閱讀全文

          posted @ 2009-04-25 13:13 俊星 閱讀(217) | 評論 (0)編輯 收藏

          僅列出標題
          共10頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 
          主站蜘蛛池模板: 枝江市| 荣成市| 子长县| 同江市| 黄龙县| 黄骅市| 大悟县| 尚志市| 万安县| 武陟县| 岱山县| 荆门市| 闸北区| 库伦旗| 乳山市| 凤城市| 阜平县| 金沙县| 高唐县| 铁岭市| 漾濞| 泸溪县| 开封县| 二连浩特市| 诏安县| 宁强县| 五河县| 阿克陶县| 渭源县| 宣城市| 拉萨市| 绥芬河市| 湟源县| 曲周县| 全南县| 霞浦县| 芜湖市| 多伦县| 博客| 南华县| 双桥区|