xml:
<people>
<student id = "123">
<name>zy</name>
<age>15</age>
<address>sichuan</address>
</student>
<student id = "9988">
<name>sunyanzi</name>
<age>15</age>
<address>xjp</address>34
</student>
</people>
**********************用SAX读取XML的数据,将数据封装成一个MAP*********************
public class SaxTest {
public static void main(String[] args) throws ParserConfigurationException,
SAXException, IOException {
SAXParserFactory saxfactory = SAXParserFactory.newInstance();
SAXParser saxpa = saxfactory.newSAXParser();
SaxHandler saxHandler = new SaxHandler();
saxpa.parse("src/SAX/two.xml", saxHandler);
System.out.println(saxHandler.array);
}
}
class SaxHandler extends DefaultHandler {
ArrayList<HashMap<String, String>> array;
String flag = "";
int sum = 0;
public void startDocument() throws SAXException {
array = new ArrayList<HashMap<String, String>>();
}
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
if ("student".equals(name)) {
HashMap<String, String> hp = new HashMap<String, String>();
for (int i = 0; i < attributes.getLength(); i++) {
hp.put(attributes.getQName(i), attributes.getValue(i));
}
array.add(hp);
}
flag = name;
}
public void characters(char[] ch, int start, int length)
throws SAXException {
if (flag.equals("name")) {
array.get(sum).put("name", new String(ch, start, length));
} else if (flag.equals("age")) {
array.get(sum).put("age", new String(ch, start, length));
} else if (flag.equals("address")) {
array.get(sum).put("address", new String(ch, start, length));
}
}
public void endElement(String uri, String localName, String name)
throws SAXException {
if (name.equals("student")) {
sum++;
}
flag = "";
}
}
分享到:
相关推荐
SAX(Simple API for XML)是一种轻量级的XML解析技术,主要用于读取XML文档。相较于DOM(Document Object Model)解析器,...通过学习和实践这个项目,你可以提升处理XML数据的能力,并将其应用于实际的软件开发中。
标题中的"SAX与JAVA.rar"指的是Java编程语言中用于...对于想要学习或使用SAX解析XML的Java开发者来说,这是一个宝贵的资源库。通过研究这些代码,开发者可以深入理解SAX的工作原理,并能灵活地将其应用到实际项目中。
SAX Basic,也被称为X Basic或SAXscript,是一种基于Basic编程语言的脚本系统,主要用于应用程序的二次开发。在IT行业中,二次开发是指在现有软件基础上进行定制化修改或扩展,以满足特定用户需求的过程。SAX Basic...
本学习文档涵盖了XML的基础以及与其相关的几个核心概念:DTD、Schema、SAX、DOM、XSL和XPath。 首先,让我们来理解XML的基础。XML的设计目标是为了传输和存储结构化数据,它通过自定义的标签来描述数据。XML文档...
学习SAX解析XML的过程中,你需要理解以下几点关键知识点: 1. **事件驱动模型**:SAX解析器在读取XML文件时,会触发一系列事件,如开始文档、开始元素、结束元素等,开发者需要为这些事件编写回调函数。 2. **`...
开发者需要学习并理解这些库的API,以便正确地集成到自己的项目中。 在VC++中,我们可以通过创建一个解析器类来组织代码,该类包含解析过程中的状态信息和回调函数。解析器类在初始化时打开XML文件,然后调用库提供...
### XML基础及DOM 文档对象模式和SAX 基于事件处理模式 学习笔记 #### XML概述 XML(可扩展标记语言)是一种由W3C(万维网联盟)定义的标记语言,用于存储和传输数据。与HTML相比,XML更注重于数据的描述而非展示...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件等领域。SAX(Simple API for XML)是XML解析的一种...学习和理解SAX解析有助于提高处理大型XML文件的效率,减少内存消耗。
在Android开发中,XML(可扩展标记语言)作为一种数据存储和交换格式,广泛应用于应用程序的配置、数据存储以及网络...学习和掌握SAX解析是提升Android开发技能的重要一环,它能帮助你在处理XML数据时更加高效和灵活。
SAX(Simple API for XML)是一种事件驱动的解析器,它不将整个XML文档加载到内存中,而是逐行读取,逐个事件处理,因此对于大体积的XML文件,SAX解析相比DOM解析更为高效。本篇文章将详细介绍如何在Android中使用...
XML(eXtensible Markup Language)是一种用于存储和交换数据的标记语言,广泛应用于软件开发、Web...通过学习这些示例,开发者可以更好地理解XML解析原理,熟练掌握Java处理XML的技巧,提升软件开发中的数据处理能力。
#### 谁应该学习本教程? 本教程旨在探讨Simple API for XML(SAX)2.0.x版本的使用方法,适用于那些已经熟悉XML基本概念并希望进一步掌握轻量级、基于事件的API来进行XML数据处理的开发人员。 #### SAX概述 SAX...
在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,尤其在Web应用程序中广泛使用。处理XML文件时,我们通常会...通过学习这些代码,我们可以进一步掌握这两种解析技术的实际应用。
用户可以通过阅读这些代码来学习如何在实际项目中应用SAX技术。 使用SAX解析XML时,还需要注意以下几点: 1. **错误处理**:SAX解析过程中可能会遇到各种错误,如语法错误、网络问题等,需要在回调方法中捕获并处理...
在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,尤其是在Web服务和配置文件中广泛应用。...通过学习和掌握这两种技术,开发者可以更高效地进行XML相关的编程任务。
通过学习这个案例,开发者不仅可以了解JSP的基本语法,还能掌握XML处理的核心技术,为进一步深入Java Web开发奠定基础。对于初学者来说,这是一个很好的起点,可以结合实际项目需求,灵活运用DOM和SAX解析XML,提升...
### Android学习笔记1—SAX解析XML #### SAX解析XML概览 在Android开发中,XML文件被广泛用于布局设计、资源定义等场景。而为了处理这些XML文件,开发者需要了解不同的XML解析技术,其中SAX(Simple API for XML)...
在学习和使用这些解析方式时,理解它们的工作原理、优缺点以及如何在Android代码中正确实现和使用是至关重要的。同时,了解如何处理XML中的命名空间、属性、实体引用等特性,以及如何处理错误和异常,也将有助于提升...
在IT行业中,XML...通过学习和实践这些示例,你可以更好地理解XML处理的各种策略,并根据实际需求选择合适的方法。无论是在服务器端处理大量数据,还是在客户端构建动态应用,XML解析技术都是不可或缺的技能。
在学习XML解析时,理解DOM和SAX的区别和适用场景是关键。DOM提供了灵活的数据访问,而SAX则侧重于高效的数据流处理。选择哪种解析方式取决于你的具体需求,如文件大小、性能要求以及数据处理的复杂性。通过实践,你...