`
Java_大猫
  • 浏览: 169821 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

SAX 解析XML

    博客分类:
  • J2SE
阅读更多
学习时的练习代码贴出来给初学者一起分享下:具体不解释
package com.xmlTest;

import java.util.ArrayList;
import java.util.List;

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

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

public class SAXTest3 extends DefaultHandler{
	private final static String url="D:\\workSpace\\J2SE\\src\\com\\xmlTest\\test2.xml";
	private String tagName; 
	private Book book = null; 
	static List<Book> bookList = new ArrayList<Book>();
	@Override
	public void startDocument() throws SAXException {
		   System.out.println("Document--start");  
		
	
	}
	@Override
	public void endDocument() throws SAXException {
	
		
		   System.out.println("Document--end");  
		   
	}
	@Override
	public void startElement(String uri, String localName, String qName,  
			Attributes attributes) throws SAXException {
		//取节点<book>
		if("book".equals(qName)){
			book = new Book();
			book.setId(attributes.getValue("id"));
			book.setType(attributes.getValue("type"));
			
		}
		tagName = qName;
	}

	@Override
	public void characters(char[] ch, int start, int length) throws SAXException {
		if(tagName!=null){
			String content = new String(ch,start,length);
		
			if("name".equals(tagName))
			{
				book.setName(content);
				
			}else if("price".equals(tagName))
			{
				book.setPrice(content);
			}
		}
	
		
	}

	

	@Override
	public void endElement(String uri, String localName, String qName) throws SAXException {
		if("book".equals(qName)){
			bookList.add(book);
			book = null;
		}
		tagName = null;
	}



	public static void main(String[] args) throws Exception {
		SAXParserFactory factory = SAXParserFactory.newInstance();
		factory.setNamespaceAware(true);
		SAXParser saxParser = factory.newSAXParser();
		SAXTest3 handlerbase = new SAXTest3();
		saxParser.parse(url, handlerbase);
		
		for(Book book:bookList){
			System.out.println(book.toString());
		}
	}
	
}
class Book{
	private String id;
	private String type;
	private String name;
	private String price;
	public String getId() {
		return id;
	}
        //省略get set 方法
	 public String toString(){  
	        return this.id+":"+this.type+":"+this.name+":"+this.price;  
	    }  
}

参考学习:http://www.iteye.com/topic/763895 感谢作者
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics