1.新建文件名为:Saxdemo.java,代码:
package com.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import com.inter.XmlDocument;
public class SaxDemo implements XmlDocument
{
public void createXml(String fileName)
{
System.out.println("<<" + fileName + ">>");
}
public void parserXml(String fileName)
{
SAXParserFactory saxfac = SAXParserFactory.newInstance();
try
{
SAXParser saxparser = saxfac.newSAXParser();
InputStream is = new FileInputStream(fileName);
saxparser.parse(is, new MySAXHandler());
}
catch (ParserConfigurationException e)
{
e.printStackTrace();
}
catch (SAXException e)
{
e.printStackTrace();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
System.out.println("-----sax解析完毕------");
}
}
class MySAXHandler extends DefaultHandler
{
boolean hasAttribute = false;
Attributes attributes = null;
public void startDocument() throws SAXException
{
System.out.println("开始打印");
}
public void endDocument() throws SAXException
{
System.out.println("结束打印");
}
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException
{
if (qName.equals("employees"))
{
return;
}
if (qName.equals("employee"))
{
System.out.println(qName);
}
if (attributes.getLength() > 0)
{
this.attributes = attributes;
this.hasAttribute = true;
}
}
public void endElement(String uri, String localName, String qName)
throws SAXException
{
if (hasAttribute && (attributes != null))
{
for (int i = 0; i < attributes.getLength(); i++)
{
System.out.println(attributes.getQName(0)
+ attributes.getValue(0));
}
}
}
public void characters(char[] ch, int start, int length)
throws SAXException
{
System.out.println(new String(ch, start, length));
}
}
2.编写测试类,TestSax.java,代码如下:
public class TestDom
{
public static void main(String[] args)
{
Saxdemo sax = new Saxdemo();
//创建的xml见图一
sax.createXml("D://employee.xml");
//解析的xml见图二
sax.parseXml("E://employee.xml");
}
}
分享到:
相关推荐
总结,SAX解析XML是一种高效且节省内存的处理方式,适用于处理大量XML数据。通过实现回调接口,我们可以根据XML文档的结构执行相应的操作,而无需一次性加载整个文件。了解并熟练掌握SAX解析技术,有助于我们在处理...
本文将详细介绍如何在Android中使用SAX方式创建和解析XML。 ### 1. Android中创建XML文件 创建XML文件通常在服务器端完成,然后通过HTTP请求传递到Android客户端。不过,如果需要在本地生成XML,可以使用Java的`...
总结来说,SAX解析XML本地读取的方式是一种高效且节省内存的处理方式,尤其适合处理大型XML文件。通过编写事件处理器,我们可以按需读取和处理XML文档的内容,而无需一次性加载整个文件到内存中。在实际开发中,了解...
总的来说,Java中的SAX解析XML文档是一种高效且灵活的方式,尤其适用于处理大文件或资源有限的环境。通过创建自定义的事件处理器,我们可以精确地控制解析过程,只处理关心的数据,而忽略其他部分,从而优化性能。
- JDOM库的导入和使用方法,包括创建XML文档、解析XML文件、修改XML数据等。 - JOM4J库的API介绍和使用示例,展示如何快速读写XML,以及执行XPath查询。 - 演示如何配置和实现SAX事件处理器,处理XML解析过程中的...
- **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...
在Java编程中,解析XML有多种方法,其中SAX(Simple API for XML)和PULL(Pull Parser)是两种常用的事件驱动型解析方式。本文将深入探讨这两种解析技术,并介绍如何同时使用它们来生成XML文件。 **SAX解析器**: ...
在处理XML数据时,SAX...总结来说,Servlet结合SAX解析XML是一种有效的处理方式,尤其在处理大量XML数据时,能够提供良好的性能和资源管理。正确理解和使用这一技术,可以帮助你构建更高效、更健壮的Java Web应用。
Java SAX方式解析XML文档是一种高效的处理大型XML文件的方法,它基于事件驱动模型,不将整个XML文档加载到内存中,而是逐个处理XML元素。这种方式非常适合处理大文件,因为它节省了内存,但需要编写更多的代码来处理...
本文将深入讲解如何在Android中使用SAX解析XML以及如何通过SAX方式创建XML。 **1. SAX解析XML** SAX解析XML的基本流程是:创建SAXParserFactory,通过该工厂实例化SAXParser,然后设置事件处理器(ContentHandler...
1. **创建解析器**: 首先,我们需要创建一个SAX解析器实例。在Java中,这通常通过`SAXParserFactory`类完成。设置解析器属性,然后调用`newSAXParser()`方法获取`SAXParser`对象。 ```java SAXParserFactory ...
SAX(Simple API for XML)是XML解析器的一种,它以事件驱动的方式解析XML文档,具有内存占用小、处理速度快的优点,特别适合处理大体积的XML文件。本篇文章将深入探讨Android环境下如何使用SAX解析XML,并介绍两种...
在 Java 中使用 DOM 方式解析 XML 文件需要使用 JAXP(Java API for XML Processing),首先需要创建一个解析器工厂,然后使用工厂创建一个具体的解析器对象。然后,使用解析器对象来解析 XML 文件,得到一个 ...
本文将深入探讨解析XML的三种主要方法:DOM(Document Object Model)、SAX(Simple API for XML)和PULL解析。 1. DOM解析: DOM是W3C推荐的标准解析方式,它将整个XML文档加载到内存中,构建一个树形结构,称为...
本篇我们将深入探讨SAX(Simple API for XML)解析XML的实例。 SAX,全称为Simple API for XML,是一种基于事件驱动的解析方式。与DOM(Document Object Model)解析器不同,SAX并不将整个XML文档加载到内存中形成...
Java解析XML数据主要涉及到的是对XML文档的读取和处理,SAX(Simple API for XML)解析器是一种基于事件驱动的解析方式,适用于处理大型XML文件。与DOM(Document Object Model)解析器不同,SAX不需要一次性加载...
XML是一种广泛用于数据交换的格式,Android提供了多种解析XML的方法: 1. **DOM解析器**: 它一次性加载整个XML文档到内存中,创建一个树形结构,然后可以遍历节点。适用于小到中等大小的XML文件,但如果文件过大,...
2. 创建解析器:通过`SAXParserFactory`和`SAXParser`类,我们可以实例化并配置SAX解析器。 3. 设置内容处理器:将我们实现的`ContentHandler`对象设置为解析器的处理器。 4. 开始解析:调用`parse()`方法,传入...
在Java中,有多种方式可以解析XML文档,其中最常用的是DOM(Document Object Model)和SAX(Simple API for XML)。本篇文章将详细介绍DOM和SAX解析XML的方法,并通过提供的`DomDemo.java`和`SaxDemo.java`示例代码...