<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    俊星的BLOG

    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 on 2009-04-30 20:29 俊星 閱讀(168) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 久久这里只有精品国产免费10| 日韩a毛片免费观看| 久久久免费的精品| 亚洲精品乱码久久久久久按摩 | 免费大黄网站在线观| 中文字幕精品三区无码亚洲| 黄色片在线免费观看| 亚洲中文字幕无码一去台湾| 男女超爽刺激视频免费播放| 亚洲a级成人片在线观看| 成人免费午夜无码视频| 亚洲伦理中文字幕| 成人au免费视频影院| 亚洲av无码专区首页| 国产裸模视频免费区无码| 国产亚洲视频在线观看网址| 亚洲国产精品无码久久九九| 亚洲免费无码在线| 亚洲gv白嫩小受在线观看| 久久成人免费电影| 亚洲人成网站在线观看播放青青| 99re热免费精品视频观看| 亚洲色欲啪啪久久WWW综合网| 在线观看免费精品国产| 最近中文字幕大全免费视频| 亚洲国产精品张柏芝在线观看| 性生交片免费无码看人| 亚洲a∨国产av综合av下载 | 野花香在线视频免费观看大全| 亚洲91av视频| 免费av欧美国产在钱| 日本激情猛烈在线看免费观看| 精品久久久久久亚洲| 99久久久精品免费观看国产 | 亚洲国产精品无码久久一线| 久久免费看黄a级毛片| 亚洲国产区男人本色| 亚洲午夜国产精品无码老牛影视| 在线观看免费av网站| 色噜噜的亚洲男人的天堂| 国产亚洲精品自在久久|