Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1530198
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 19:58:35

一起学习
基于事件驱动的解析接口 SAX (实例二) 实例二、查查看我的 书架 中有多少本 小说 书(获取元素的属性值) 题目是要查出来下面的 XML 文件 books.xml 里有多少本 小说。 <书架> <书 类别="参考书"> <著者>谭浩强 <书名>学习C <价格>20.00 <书 类别="小说"> <著者>吴承恩 <书名>西游记 <价格>120.56 <书 类别="小说"> <著者>曹雪芹 <书名>红楼梦 <价格>208.99 <书 类别="小说"> <著者>睡虫 <书名>下月出版 <价格>0.00 下面的代码使用了 SUN 的 JAXP 包,请在 下载。 在 Jbuilder4 中运行正确。请注意将要分析的 xml 文件放在 或者更改此 URI import org.xml.sax.*; import javax.xml.parsers.*; /** * Title: XML Study, Sample 2 * Description: Count fictions in my shelf. * Copyright: Copyright (c) 2001 * Company: Isolation Land. * @author Slepworm * @version 1.0 */ public class GetAtts extends org.xml.sax.helpers.DefaultHandler{ private int count = 0; // 定义一个计数器 private boolean isFiction; public GetAtts() { } // 创建一个新的 JAXP 的 SAXParserFactory 实例,并且配置它。 public void createParser() throws Exception { SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setValidating(false); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); xr.setContentHandler(this); xr.parse(""); } // 当每次碰到一个 book 元素的时候,将 计数器 加一。此方法在遇到第一个元素的时候开始执行 public void startElement(String namespaceURI, String localName, String rawName, Attributes atts) throws SAXException { if (rawName.equals("书")) { String category = atts.getValue("类别"); ///**** 获取 类别 的值 System.out.println(category); //打印 类别 的值 isFiction = (category != null && category.equals("小说")); //如果 类别 的值为 小说 则将计数器加一。 if (isFiction) count ; } } // 输出 计数器。此方法在分析文档完成的时候执行 public void endDocument() throws SAXException { System.out.print(count); } public static void main(String[] args) throws Exception { BookCounter ga = new GetAtts(); ga.createParser(); } } 输出结果 为 参考书 小说 小说 小说 3 下载本文示例代码


基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)基于事件驱动的解析接口 SAX (实例二)
阅读(227) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~