国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java解析xml之sax解析xml示例分享

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

2019-10-27 12:31java技術(shù)網(wǎng) JAVA教程

SAX基于事件的解析,解析器在一次讀取XML文件中根據(jù)讀取的數(shù)據(jù)產(chǎn)生相應(yīng)的事件,由應(yīng)用程序?qū)崿F(xiàn)相應(yīng)的事件處理邏輯,即它是一種“推”的解析方式;這種解析方法速度快、占用內(nèi)存少,但是它需要應(yīng)用程序自己處理解析器的狀

代碼如下:


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 當(dāng)讀到一個(gè)開(kāi)始標(biāo)簽的時(shí)候,會(huì)觸發(fā)這個(gè)方法
        super.startDocument();

        peoples = new ArrayList<People>();
    }

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

    @Override
    public void startElement(String uri, String localName, String name,
            Attributes attributes) throws SAXException {
        // TODO 當(dāng)遇到文檔的開(kāi)頭的時(shí)候,調(diào)用這個(gè)方法
        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 這個(gè)方法用來(lái)處理在XML文件中讀到的內(nèi)容
        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 在遇到結(jié)束標(biāo)簽的時(shí)候,調(diào)用這個(gè)方法
        super.endElement(uri, localName, name);

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

}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久一在线 | 国产精品三级视频 | 国产一区二区影院 | 精品久久久久国产 | 亚洲午夜精品久久久久久高潮 | 可以免费看黄的网站 | 久久66| 国产一区二区免费 | 黄色电影在线免费观看 | 日韩在线播放一区二区三区 | 伊人青青草 | 日韩在线 | 亚洲午夜成激人情在线影院 | 亚洲日本在线观看视频 | 欧美成人综合 | 欧美成人精品一区二区男人看 | 日韩久久综合 | 国产成人黄色网址 | 特黄特色大片免费视频观看 | 国产精品国产 | 日韩欧美精品在线 | 日韩免费电影 | 欧洲亚洲精品久久久久 | 成人精品视频 | 精品国产91乱码一区二区三区 | 欧美 日韩 中文 | 日韩国产精品一区二区三区 | 一区二区在线不卡 | 一区二区乱码 | a国产精品 | ww8888免费视频 | 在线你懂得 | 午夜成人在线视频 | 91国内精品久久 | 婷婷久久综合 | 欧美亚洲在线 | 玖玖精品 | 成人av一区二区亚洲精 | 国产乱码久久久久久一区二区 | 国产在线观看一区二区三区 | 精品国产网站 |