把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调试看结果

时间: 2024-11-05 08:52:47

把XML文档中的每一本书封装到一个book对象,并把多个book对象放到一个list集合当中返回的相关文章

详解xml文件描述,读取方法以及将对象存放到xml文档中,并按照指定的特征寻找的方案

主要的几个功能: 1.完成多条Emp信息的XML描述2.读取XML文档解析Emp信息3.将Emp(存放在List中)对象转换为XML文档4.在XML文档中查找指定特征的Emp信息 dom4j,jaxen 官网下载页面: http://sourceforge.net/projects/dom4j/files/dom4j-2.0.0-ALPHA-2/ 也可以在网盘上面下载:http://yunpan.cn/cwaNde7UYN83d  提取码 e247 1 完成多条Emp信息的XML描述 1.1 问

XML文档中如何引入Schema

接触XML有一段日子了,但一直都是复制粘贴,或者照着例子写,没有真正地理解. 今天,又温习了一下XML,有种陌生又熟悉的感觉... 言归正传,先看一个简单的schema文件(05.xsd) 语法就不说了,这里主要解释一下schema元素的前三个属性: 1. xmlns="http://www.w3.org/2001/XMLSchema" 声明默认的命名空间,表示这个schema文件中的所使用的元素和数据类型都来自      http://www.w3.org/2001/XMLSchem

从多个XML文档中读取数据用于显示webapi帮助文档

前言: 你先得知道HelpPageConfig文件,不知道说明你现在不需要这个,所以下文就不用看了,等知道了再看也不急.当然如果你很知道这个,下文也不用看了,因为你会了. 方法一: new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/Documentation.xml")) 替换成 new XmlDocumentationProvider("PluginsFolder/*.xm

XML文档中的xmlns、xmlns:xsi和xsi:schemaLocation

文章转载自:https://yq.aliyun.com/articles/40353 相信很多人和我一样,在编写Spring或者Maven或者其他需要用到XML文档的程序时,通常都是将这些XML文档头拷贝过来,并没有理解其中元素(比如xmlns,xmlns:xsi,xsi:schemaLocation)的真正含义,不知道哪些元素是多余的,也不知道为什么要加那些元素.这样当有时候网上Copy的XML头有错的时候自己却不知道怎么下手.我也是这样的,于是今天花了点时间好好的理解了一下这些元素及其用法,

net9:图片变成二进制流存入XML文档,从XML文档中读出图片以及从XML文档中读取并创建图片文件

原文发布时间为:2008-08-10 -- 来源于本人的百度文章 [由搬家工具导入] fileToXml类: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;u

用javabean封装xml文档数据

//book.xml <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id="1"> <name>冰与火之歌</name> <author>乔治马丁</author> <year>2014</year> <price>89</price> <la

.Net中使用xsd验证xml文档

在.NET中使用XSD可以方便的验证一个XML文档是否符合规范.这里的XSD本质上是一个xml文件,XSD相当于数据库中的表结构或者C#语言中的一个抽象类,它规定了被验证的目标xml的结构,如目标xml具有哪些节点,每个节点的顺序关系,每个节点的数据类型,每个节点的出现次数等信息. .NET中通过XmlReader和XmlReaderSettrings类可以方便的对XML进行验证,示例代码如下: 1         static void Main(string[] args) 2 { 3 //

java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = DocumentHelper.parseText(xmlStr); // XML转字符串 Document document = ...; String text = document.asXML(); //这里的XML DOCUMENT为org.dom4j.Document 二.读取XML文档节点: pack

Spring中xml文档的schema约束

最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springfram