Sax简单解析xml

主要代码

package com.sax;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

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

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

public class DemoBk {

    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
       
        //1.创建解工厂
        SAXParserFactory factory=SAXParserFactory.newInstance();
       
        //2.得到解析器
        SAXParser sp=factory.newSAXParser();
       
        //3。得到读取器
        XMLReader reader=sp.getXMLReader();
       
        //4.设置内容处理器
        BeanListHandler3 handler = new BeanListHandler3();
        reader.setContentHandler(handler);
       
        //5.读取xml文档内容
        reader.parse("src/book.xml");
       
        List<Book> list = handler.getBooks();
        System.out.println(list);
       
    }

}
//把xml文本内容存储到bean中
class BeanListHandler3 extends DefaultHandler{
   
    private Book book;
    private List list = new ArrayList();   
    private String TargetNode ;
   
    @Override
    public void startElement(String uri, String localName, String qName,
            Attributes attributes) throws SAXException {
        TargetNode=qName;
        if("书".equals(TargetNode)){
            book=new Book();
        }
               
    }
    @Override
    public void characters(char[] ch, int start, int length)
            throws SAXException {
        if("书名".equals(TargetNode)){
            String name= new String(ch,start,length);
            book.setName(name);
        }
        if("作者".equals(TargetNode)){
            String author= new String(ch,start,length);
            book.setAuthor(author);
        }
        if("售价".equals(TargetNode)){
            String price = new String (ch,start,length);
            book.setPrice(price);
        }
       
       
    }
    @Override
    public void endElement(String uri, String localName, String qName)
            throws SAXException {
        if(qName.equals("书")){
            list.add(book);
            book=null;
        }
        TargetNode=null;
    }
    public List getBooks(){
        return list;
    }
       
}

javaBean ,Book类

public class Book {

    private String name;
    private String author;
    private String price;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public String getPrice() {
        return price;
    }
    public void setPrice(String price) {
        this.price = price;
    }
   
}

xml文档

<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架>
    <书>
        <书名>Java就业培训教程</书名>
        <作者>张孝祥</作者>
       
        <售价>79.00元</售价>
        </书>
    <书>
        <书名>JavaScript网页开发</书名>
        <作者>匿名</作者>
        <售价>28.00元</售价>
    </书>
</书架>

posted @ 2016-05-11 09:45  小_Dnice  阅读(291)  评论(0)    收藏  举报