sax解析个人感觉是非常麻烦的,但是是sun公司的标准,所以还是必须得学习:示例代码有两个功能,一个是列出所有的标签和标签的值,一个是列出你想要的标签的值
xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><persons>
<person>
<name>wuyihua</name>
<grade>98</grade>
<id>1</id></person>
<person job="student">
<name>zengxiangjian</name>
<grade>100</grade>
<id>3</id></person>
</persons>
解析类:
package com.saxparser.domain;
import javax.sql.rowset.spi.XmlReader;
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.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
public class Demo1 {
/**
* @param args
* @throws Exception
* @throws ParserConfigurationException
*/
public static void main(String[] args) throws ParserConfigurationException,
Exception {
SAXParserFactory fa = SAXParserFactory.newInstance();// 得解析工厂
SAXParser parser = fa.newSAXParser();// 得解析器
XMLReader reader = parser.getXMLReader();// 得到数据
reader.setContentHandler(new ListHandler());// 设置解析器,解析器要自己写;
reader.parse("src/person.xml");// 获取xml文档内容
}
}
class ListHandler extends DefaultHandler {
private String current;// 记录现在的标签
private String needTag;// 记录你想要的标签
private int currentNum;// 记录现在是第几个标签
private String tagValue;
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
System.out.println("<" + qName + ">");// 打印所有的开始标签
current = qName;
for (int i = 0; i < attributes.getLength() && attributes != null; i++) {// for遍历所有的属性
System.out.println(attributes.getValue(i));
}
super.startElement(uri, localName, qName, attributes);
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if ("name".equals(current)) {//这里我想获取第一个name标签的值
needTag = current;
tagValue = new String(ch, start, length);
System.err.println(tagValue);// 用err来标记想要的标签的值
}
System.out.println(new String(ch, start, length));// 打印所有的标签的值
super.characters(ch, start, length);
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
current = null;
System.out.println("</" + qName + ">");// 打印结束标签的名称
super.endElement(uri, localName, qName);
}
}
分享到:
相关推荐
- `xmlSAXPaserDemo`可能是一个包含示例代码的Android项目,用于演示如何实际使用SAX解析XML文件。 - 项目中可能包括网络请求模块、SAX解析器处理类以及展示解析结果的UI部分。 通过以上步骤,开发者可以在...
在提供的“analysis_xml”项目中,很可能包含了一个示例,演示了如何使用dom4j的SAX解析器解析XML文件。这样的测试项目有助于理解SAX解析的工作原理,并在实际开发中应用。 总结起来,dom4j库提供了DOM和SAX两种XML...
在压缩包文件"TestSAX"中,可能包含了一个简单的SAX解析示例程序,用于演示如何解析XML文档并输出相关元素信息。你可以根据上述步骤查看和运行代码,理解SAX解析的实际工作流程。 总的来说,SAX解析XML是一种高效且...
在压缩包中的"ReadXXML"文件可能是用于演示或实现如何读取XML文件的代码示例。这个文件可能包含了使用SAX解析XML或者vdx文件的具体Java或Python代码,包括设置解析器、注册事件处理器、处理XML事件等步骤。 总的来...
"sax_xml sax_解析_xml"标签表明了本压缩包包含使用SAX解析XML的示例代码。 3. **JDOM**:JDOM是一个Java API,专门用于读写XML文档。它提供了一个更面向Java的对象模型,使得XML处理更加直观。JDOM在DOM的基础上...
在提供的压缩包"**saxloadxml**"中,很可能包含了一个使用SAX解析XML的Java示例项目。测试代码会演示如何创建一个SAX解析器实例,注册事件处理器,并启动解析过程。运行这个测试代码,你可以直观地了解SAX解析XML的...
在Android开发中,处理XML数据是一项常见的任务,无论是从服务器获取数据还是本地文件读取,XML因其结构化和可读性而...在`SaxTest`项目中,你可以找到一个具体的示例,演示如何将这些概念整合到实际的Android应用中。
同时,`andoridSax`这个文件名可能是示例代码或资源文件,可以包含用于演示SAX解析的XML文件和相关代码。 总之,SAX解析XML是Android应用处理XML数据的一种高效方法,尤其适用于处理大文件。通过实现`...
本示例"android sax解析xml模板源码"提供了一个使用SAX解析XML的实例,方便开发者直接导入到自己的项目中使用。 SAX解析XML的基本流程如下: 1. **创建解析器**:在Android中,我们需要使用`SAXParserFactory`来...
本文将详细介绍如何使用SAX(Simple API for XML)和PULL(Pull Parser)这两种方法来解析XML,并以一个简单的XML示例"Person"为例,通过源代码演示解析过程。 一、SAX解析 SAX是一种基于事件驱动的解析器,它不...
这个“DOM SAX解析XML文档的范例”工程将演示如何使用Java中的DOM和SAX API来解析XML文件,提供实践案例来帮助开发者理解和掌握这两种方法。工程中的XMLDemo可能是包含示例代码的类,展示了如何使用DOM和SAX解析XML...
`DomXmlOperate`中可能没有包含SAX解析的示例,因为通常SAX解析的代码比DOM和PULL更复杂,需要自定义事件处理器。 总结来说,DOM解析适合小规模、需频繁查询的XML文件;PULL解析适用于处理大型XML文件,节省内存;...
在这个项目中,开发者可能创建了一个程序,演示如何使用SAX解析XML文档。接下来,我们将深入探讨SAX解析的工作原理和关键概念。 1. **SAX解析原理**: - SAX解析器逐行读取XML文档,遇到每个元素、属性、文本节点...
- SAX解析:创建一个实现了`DefaultHandler`的类,重写`startElement()`、`endElement()`等方法。然后创建`SAXParserFactory`,获取`SAXParser`,并调用`parse()`方法。 ```java SAXParserFactory factory = ...
在这个"XML_DOM_SAX.rar"压缩包中,包含了可能的C#代码示例,用于演示如何使用DOM和SAX解析XML。`www.pudn.com.txt`可能是包含相关资源链接的文本文件,而`XML_DOM&SAX`可能是包含C#代码的文件,可以解压后查看具体...
标题中的“test_sax.rar_RSS_sax”表明这是一个关于使用SAX解析器处理RSS Feed的示例项目。SAX(Simple API for XML)是一种基于事件驱动的XML解析方法,它不像DOM(Document Object Model)那样将整个XML文档加载到...
描述中提到的“RDF的解析例程,使用XML的SAX或者DOM来处理RDF文档”表明压缩包内可能有代码示例,演示如何利用SAX解析器读取和处理RDF数据。DOM(Document Object Model)是另一种常见的XML解析方法,它将整个XML...
总的来说,"SaxRead.rar"中的Java实现可能提供了一个简单的示例,演示了如何使用SAX解析器来高效地读取和处理XML文件。通过理解和应用这些基本概念,开发者可以构建自己的SAX解析器,以适应特定的应用场景,例如过滤...
在上述的`SaxParseXmlDemo`示例中,可能包含了具体的代码实现,演示了如何使用SAX解析XML文件并处理解析过程中的事件。这个例子可以帮助我们更好地理解SAX解析的工作原理,并提供了一个实际应用的参考。 总的来说,...
- `SAX_XML` 暗示了一个使用SAX解析器处理XML的示例代码或结果。 - `A_XML_zuoye` 可能是关于XML解析的作业,可能包括对`A_XML`的解析任务。 - `TestXml 2` 可能是一个测试XML解析的代码文件,可能是针对不同解析...