标签:src end private 就会 相对 情况下 ade 创建 情况
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<书架> <书> <书名>java从入门到放弃</书名> <作者>呵呵</作者> <售价>0.01</售价> </书> <书> <书名>c从入门到精通</书名> <作者>我好</作者> <售价>1.00</售价> </书> </书架>
package com; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 2017/10/28 * 说明: */ public class SAXDemo { public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { List<Book> books = new ArrayList<>(); //使用SAXParserFactory创建SAX解析工厂 SAXParserFactory spf = SAXParserFactory.newInstance(); //通过SAX解析工厂得到解析对象 SAXParser sp= spf.newSAXParser(); //通过解析器对象得到一个XML的读取器 XMLReader xmlReader = sp.getXMLReader(); //设置读取器的事件处理器 xmlReader.setContentHandler(new DefaultHandler(){ private Book book = null; private String currentTagName;//当前读取的元素的名称 public void startElement (String uri, String localName, String qName, Attributes attributes) throws SAXException { if("书".equals(qName)){ book = new Book(); } currentTagName = qName; } public void endElement (String uri, String localName, String qName) throws SAXException { if("书".equals(qName)){ books.add(book);//读到书标记的结束,把书对象存起来 } currentTagName = null; } public void characters (char ch[], int start, int length) throws SAXException { if("书名".equals(currentTagName)){ book.setName(new String(ch,start,length)); } if("作者".equals(currentTagName)){ book.setAuthor(new String(ch,start,length)); } if("售价".equals(currentTagName)){ book.setPrice(new String(ch,start,length)); } } }); //解析xml文件 xmlReader.parse("D:\\code\\web\\src\\main\\webapp\\book.xml"); for(Book b:books){ System.out.println(b); } } }
标签:src end private 就会 相对 情况下 ade 创建 情况
原文地址:http://www.cnblogs.com/xuweiweiwoaini/p/7747917.html