- 浏览: 82782 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
yuanliangding:
有没有办法改呢。
使用反射修改final属性 -
风雪木易:
a并没有改变,用a.getter访问,别用field.get( ...
使用反射修改final属性 -
lylegend13:
哈包祥明 写道可以问一下 这篇文章要说明什么》》???
AC ...
1012 -
哈包祥明:
可以问一下 这篇文章要说明什么》》???
1012 -
gengu:
你写代码注释都不带的??
KMP
xml文件
<bookstore> <book category="COOKING"> 0 <title lang="en">Everyday Italian</title> 1 <author>Giada De Laurentiis</author> 2 <year>2005</year> 3 <price>30.00</price> 4 </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
java文件
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; public class Main { public static void main(String[] args) throws SAXException, ParserConfigurationException, FileNotFoundException, IOException { // 工厂 SAXParserFactory parserFactory = SAXParserFactory.newInstance(); // reader XMLReader xmlReader = parserFactory.newSAXParser().getXMLReader(); // XML Handler BookHandler handler = new BookHandler(); // reader绑定handle xmlReader.setContentHandler(handler); // reader开始转换 xmlReader.parse(new InputSource(new FileInputStream( "D:\\workspace\\SAXTest\\src\\1.xml"))); // handler返回处理结果 List<Book> list = handler.getList(); for (Book book : list) { System.out.println("******************************"); System.out.println("Book --"); System.out.println("category: " + book.getCategory()); System.out.println("title: " + book.getTitle()); System.out.println("author: " + book.getAuthor()); System.out.println("year: " + book.getYear()); System.out.println("price: " + book.getPrice()); System.out.println("******************************"); } } } // XML Handler class BookHandler extends DefaultHandler { // 所有Book private List<Book> list = null; // 存储<Tag -> index>映射 private Map<String, Integer> map = new HashMap<String, Integer>(); // 当前处理的Tag对应的index private int curTag = -1; // 当前处理的Book private Book book = null; public BookHandler() { map.put("bookstore", 0); map.put("book", 1); map.put("title", 2); map.put("author", 3); map.put("year", 4); map.put("price", 5); } public List<Book> getList() { return list; } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); curTag = map.get(qName); switch (curTag) { case 0: {// 处理bookstore list = new ArrayList<Book>(); break; } case 1: {// 处理book book = new Book(); // 处理category book.setCategory(attributes.getValue("category")); break; } } } @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); switch (curTag) { case 2: {// 处理title book.setTitle(new String(ch, start, length)); break; } case 3: {// 处理author book.setAuthor(new String(ch, start, length)); break; } case 4: {// 处理year book.setYear(new String(ch, start, length)); break; } case 5: {// 处理price book.setPrice(new String(ch, start, length)); break; } } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); if (1 == map.get(qName)) {// book list.add(book); } else { curTag = -1; } } } // JavaBean: Book class Book { private String category; private String title; private String author; private String year; private String price; public void setCategory(String category) { this.category = category; } public void setTitle(String title) { this.title = title; } public void setAuthor(String author) { this.author = author; } public void setYear(String year) { this.year = year; } public void setPrice(String price) { this.price = price; } public String getCategory() { return category; } public String getTitle() { return title; } public String getAuthor() { return author; } public String getYear() { return year; } public String getPrice() { return price; } }
发表评论
-
使用反射修改final属性
2012-05-07 22:37 10486情型1:static final属性,无法修改其值。 pac ... -
超大数乘法
2012-04-27 00:12 0package m4.d26; import java. ... -
超大数
2012-03-28 01:13 0public class LinkTest { publi ... -
1182(未通过)
2012-02-24 15:56 771网上说用并查集,半天没看懂,我的代码题中的测试数据通过,但没通 ... -
1282(未通过)
2012-02-23 17:00 770遍历法,超时 package p1; impor ... -
一维数组,N皇后
2012-02-23 14:46 870import java.util.Arrays; ... -
一个Applet的练习
2011-12-10 20:10 7521. 画随机的园 功能要求:实现简单的动画 ... -
闹钟程序
2011-12-10 14:04 0import java.util.Calendar; ... -
隐藏文件
2011-11-19 11:02 0File backupDir = null; Fi ... -
日期“天数+1”的多种方法
2011-11-11 17:13 1385说明:准确打印出日期,从今天到明年的今天,主要是2月。 ... -
NIO的使用(RandomAccessFile、Charset)
2011-10-17 13:35 1171import java.io.FileNotFoundE ... -
NIO的使用(FileInputStream/FileOutputStream)
2011-10-17 13:34 975import java.io.FileInputStre ... -
ant打jar包
2011-10-12 16:03 0<project default=" ... -
Java读写xml(对复杂数据,使用中间模型)
2011-10-12 15:47 14071、创建.xml,设计.xml结 ... -
Java读写.zip里的.xml
2011-10-11 17:03 956import java.io.FileNotFoundE ... -
Java读写xml(对简单关系,无需中间模型)
2011-10-11 11:26 1220import java.io.File; import ja ... -
Practical Java 记录
2011-09-09 16:59 730实践9: 1、不同类的对象,equals()结果false。 ... -
希尔排序
2011-08-18 10:55 863public class test { publ ... -
堆排序
2011-08-18 10:11 608public class test { publ ... -
归并排序
2011-08-17 15:51 569public class test { publ ...
相关推荐
Java SAX方式解析XML文档是一种高效的处理大型XML文件的方法,它基于事件驱动模型,不将整个XML文档加载到内存中,而是逐个处理XML元素。这种方式非常适合处理大文件,因为它节省了内存,但需要编写更多的代码来处理...
在使用SAX解析XML时,我们需要创建一个实现了SAX解析器接口的类,这个类会定义处理XML事件的方法,如`startDocument()`, `endDocument()`, `startElement()`, `endElement()`等。当解析器读到XML文档的相应部分时,...
本文将详细介绍如何在Android中使用SAX方式解析XML。 **SAX解析器的工作原理** SAX解析器读取XML文件时,遇到每个元素、属性、文本等都会触发相应的事件,开发者需要通过实现ContentHandler接口来处理这些事件。...
给定的代码示例是一个使用SAX解析XML文件的Java程序。下面我们将分步解析这个过程: 1. **导入必要的包**:首先,我们需要导入SAX解析所需的类库,包括`javax.xml.parsers.*`、`org.xml.sax.*`、`org.xml.sax....
day02_xml *demo01.App1\App2\App3 使用jaxp开发包中的SAX方式解析xml文档,该方式只能读取文档 *demo4j01.App dom4j CURD XML *domo4j.ex 对dom4j 的封装例子
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
总结,Android网络数据解析中,SAX解析XML是一种高效的处理方式,尤其适用于处理大型或结构复杂的XML数据。通过创建自定义的ContentHandler并监听XML解析事件,开发者可以实现灵活且高效的XML数据处理逻辑。在实际...
本示例中,我们看到如何使用SAX解析XML字符串。 首先,我们来看主类`ParsingXML`。在这个类中,它继承自`Activity`,并包含一个用于显示结果的`TextView`。在`onCreate`方法中,首先创建了一个XML字符串`xml`,然后...
总结,SAX解析XML是一种高效且节省内存的处理方式,适用于处理大量XML数据。通过实现回调接口,我们可以根据XML文档的结构执行相应的操作,而无需一次性加载整个文件。了解并熟练掌握SAX解析技术,有助于我们在处理...
下面是一个SAX解析XML的示例(有点长,因为详细注解了SAX事件处理的所有方法),SAX API中主要有四种处理事件的接口,它们分别是ContentHandler,DTDHandler, EntityResolver 和 ErrorHandler 。下面的例子可能...
Java 解析 XML 文件的 DOM 和 SAX 方式 Java 解析 XML 文件的 DOM 和 SAX 方式是指在 Java 中使用 Document Object Model(DOM)和 Simple API for XML(SAX)两种方式来解析 XML 文件的技术。下面将详细介绍这两种...
总的来说,Java中的SAX解析XML文档是一种高效且灵活的方式,尤其适用于处理大文件或资源有限的环境。通过创建自定义的事件处理器,我们可以精确地控制解析过程,只处理关心的数据,而忽略其他部分,从而优化性能。
最后,使用`saxParser.parse()`方法解析XML文件并传递我们的处理器。 在实际应用中,根据需求,你可能需要在处理器方法内进行更复杂的数据处理,例如存储数据、计算或验证。SAX解析器允许你在不消耗大量内存的情况...
总结来说,SAX解析XML本地读取的方式是一种高效且节省内存的处理方式,尤其适合处理大型XML文件。通过编写事件处理器,我们可以按需读取和处理XML文档的内容,而无需一次性加载整个文件到内存中。在实际开发中,了解...
在处理XML数据时,SAX...总结来说,Servlet结合SAX解析XML是一种有效的处理方式,尤其在处理大量XML数据时,能够提供良好的性能和资源管理。正确理解和使用这一技术,可以帮助你构建更高效、更健壮的Java Web应用。
XML(eXtensible Markup Language)...总的来说,SAX解析XML是一种高效且节省内存的处理方式,尤其适用于处理大文件或内存有限的环境。然而,它的编程模型可能对开发者的要求更高,需要更细致地管理XML数据的处理流程。
以下是一个使用SAX解析XML文件的基本步骤: 1. **创建解析器**: 首先,我们需要创建一个SAX解析器实例。在Java中,这通常通过`SAXParserFactory`类完成。设置解析器属性,然后调用`newSAXParser()`方法获取`...
在本项目中,"saxloadxml"应该是实现了一个SAX解析XML文件的示例,旨在帮助开发者理解和应用SAX解析。 首先,我们需要理解SAX解析的基本原理。当解析器读取XML文件时,它会触发一系列的事件,如开始文档、结束文档...
"sax_xml sax_解析_xml"标签表明了本压缩包包含使用SAX解析XML的示例代码。 3. **JDOM**:JDOM是一个Java API,专门用于读写XML文档。它提供了一个更面向Java的对象模型,使得XML处理更加直观。JDOM在DOM的基础上...