zoukankan      html  css  js  c++  java
  • 把XML文档中的每一本书封装到一个book对象,并把多个book对象放到一个list集合当中返回

     1 package sax;
     2 
     3 import java.awt.print.Book;
     4 import java.io.IOException;
     5 import java.util.ArrayList;
     6 import java.util.List;
     7 
     8 import javax.xml.parsers.ParserConfigurationException;
     9 import javax.xml.parsers.SAXParser;
    10 import javax.xml.parsers.SAXParserFactory;
    11 
    12 import org.xml.sax.Attributes;
    13 import org.xml.sax.SAXException;
    14 import org.xml.sax.XMLReader;
    15 import org.xml.sax.helpers.DefaultHandler;
    16 
    17 public class Demo {
    18 
    19     public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
    20         //1、创建解析工厂
    21         SAXParserFactory factory=SAXParserFactory.newInstance();
    22         //2、得到解析器
    23         SAXParser sp=factory.newSAXParser();
    24         //3、得到读取器
    25         XMLReader reader=sp.getXMLReader();
    26         //4、设置内容处理
    27         BeanListHandler handle=new BeanListHandler();
    28         reader.setContentHandler(handle);
    29         //5、读取xml文档内容
    30         reader.parse("src/sax/shu.xml");
    31         List<shu> list=handle.getshu();
    32         System.out.print(list);
    33         
    34     }
    35 
    36 }
    37 //把XML文档中的每一本书封装到一个book对象,并把多个book对象放到一个list集合当中返回
    38 class BeanListHandler extends DefaultHandler
    39 {
    40     private List list=new ArrayList();
    41     private String currentTag;
    42     private shu book;
    43     @Override
    44     public void startElement(String uri, String localName, String qName,
    45             Attributes attributes) throws SAXException {
    46         if("书".equals(currentTag))
    47         {
    48             book=new shu();
    49             
    50         }
    51     }
    52     @Override
    53     public void characters(char[] ch, int start, int length)
    54             throws SAXException {
    55         if("书名".equals(currentTag))
    56         {
    57             String name=new String(ch,start,length);
    58             book.setName(name);
    59         }
    60         if("作者".equals(currentTag))
    61         {
    62             String author=new String(ch,start,length);
    63             book.setAuthor(author);;
    64         }
    65         if("售价".equals(currentTag))
    66         {
    67             String price=new String(ch,start,length);
    68             book.setPrice(price);
    69         }
    70     }
    71 
    72     @Override
    73     public void endElement(String uri, String localName, String name)
    74             throws SAXException {
    75         currentTag=null;
    76         if("书".equals(name))
    77         {
    78             list.add(book);
    79             book=null;
    80         }
    81         
    82     }
    83     public List getshu() {
    84         return list;
    85     }
    86 
    87     
    88     
    89 }

    程序不完整,没有打印功能,只能用debug调试看结果

  • 相关阅读:
    Microsoft Visual Studio 2005中使用水晶报表
    net的辅助工具列表
    基于.net开发平台项目案例集锦
    一个蛮不错的图形绘制控件 dotnetCHARTING
    统计图控件dotnetCharting和ZedGraph比较
    c#获取真实IP和代理IP
    虚拟主机比较安全设置
    正则表达式 大杂烩
    【转载】说说大型高并发高负载网站的系统架构
    使用.NET实现断点续传
  • 原文地址:https://www.cnblogs.com/jjlovemm/p/4270484.html
Copyright © 2011-2022 走看看