激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java解析xml之sax解析xml示例分享

java解析xml之sax解析xml示例分享

2019-10-27 12:31java技術網 JAVA教程

SAX基于事件的解析,解析器在一次讀取XML文件中根據讀取的數據產生相應的事件,由應用程序實現相應的事件處理邏輯,即它是一種“推”的解析方式;這種解析方法速度快、占用內存少,但是它需要應用程序自己處理解析器的狀

代碼如下:


package com.test;

 

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;

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

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

public class SaxXML {

    public static void main(String[] args) {
        File file = new File("e:/People.xml");
        try {
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser parser = spf.newSAXParser();
            SaxHandler handler = new SaxHandler("People");
            parser.parse(new FileInputStream(file), handler);

            List<People> peopleList = handler.getPeoples();
            for(People people : peopleList){
                System.out.println(people.getId()+"\t"+people.getName()+"\t"+people.getEnglishName()+"\t"+people.getAge());
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

class SaxHandler extends DefaultHandler {
    private List<People> peoples = null;
    private People people;
    private String currentTag = null;
    private String currentValue = null;
    private String nodeName = null;

    public List<People> getPeoples() {
        return peoples;
    }

    public SaxHandler(String nodeName) {
        this.nodeName = nodeName;
    }

    @Override
    public void startDocument() throws SAXException {
        // TODO 當讀到一個開始標簽的時候,會觸發這個方法
        super.startDocument();

        peoples = new ArrayList<People>();
    }

    @Override
    public void endDocument() throws SAXException {
        // TODO 自動生成的方法存根
        super.endDocument();
    }

    @Override
    public void startElement(String uri, String localName, String name,
            Attributes attributes) throws SAXException {
        // TODO 當遇到文檔的開頭的時候,調用這個方法
        super.startElement(uri, localName, name, attributes);

        if (name.equals(nodeName)) {
            people = new People();
        }
        if (attributes != null && people != null) {
            for (int i = 0; i < attributes.getLength(); i++) {
                if(attributes.getQName(i).equals("id")){
                    people.setId(attributes.getValue(i));
                }
                else if(attributes.getQName(i).equals("en")){
                    people.setEnglishName(attributes.getValue(i));
                }
            }
        }
        currentTag = name;
    }

    @Override
    public void characters(char[] ch, int start, int length)
            throws SAXException {
        // TODO 這個方法用來處理在XML文件中讀到的內容
        super.characters(ch, start, length);

        if (currentTag != null && people != null) {
            currentValue = new String(ch, start, length);
            if (currentValue != null && !currentValue.trim().equals("") && !currentValue.trim().equals("\n")) {
                if(currentTag.equals("Name")){
                    people.setName(currentValue);
                }
                else if(currentTag.equals("Age")){
                    people.setAge(currentValue);
                }
            }
        }
        currentTag = null;
        currentValue = null;
    }

    @Override
    public void endElement(String uri, String localName, String name)
            throws SAXException {
        // TODO 在遇到結束標簽的時候,調用這個方法
        super.endElement(uri, localName, name);

        if (name.equals(nodeName)) {
            peoples.add(people);
        }
    }

}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一级做a | 国产亚洲美女精品久久久2020 | 一级电影在线免费观看 | 精品中文字幕久久久久四十五十骆 | 日韩字幕在线观看 | 欧美成人免费电影 | 久久精品99国产国产精 | 国产在线区 | 在线播放免费人成毛片乱码 | 天堂成人国产精品一区 | 日日摸夜夜添夜夜添牛牛 | 在线成人免费av | 国产人成精品综合欧美成人 | 欧美激情 在线播放 | 久久骚| 自拍偷拍亚洲图片 | 伦一区二区三区中文字幕v亚洲 | 国产噜噜噜噜噜久久久久久久久 | 国产精品夜色视频一级区 | 成人性视频欧美一区二区三区 | 黄色av网站免费看 | 国产亚洲精品综合一区91555 | 国产精品成人久久久久a级 男女无遮挡羞羞视频 | 亚洲视频在线免费看 | 成人免费视频视频在线观看 免费 | 国产精品一区二区手机在线观看 | 国产一级免费视频 | 香蕉成人在线视频 | 欧美成人三级视频 | 成人午夜在线免费观看 | 成人免费一区二区三区 | 国产精品视频在 | 成人免费毛片明星色大师 | 欧美a视频在线观看 | 亚洲精品欧美二区三区中文字幕 | 青青草免费观看完整版高清 | 欧美激情第一区 | 成人激情视频网站 | 黄色99视频 | 91精品国产乱码久久桃 | 黄视频免费在线 |