XML解析(SAX详解)
来源:互联网 发布:巴西足球知乎 编辑:程序博客网 时间:2024/06/05 11:13
SAX(Simple APIs for XML 面向XML的简单APIs)也是程序接口。
Dom可以随机解析,首先将XMl文档加载到内存中,然后可以随机的方式访问访问内存中的DOM树。SAX是按顺序解析的,没必要把整个XML加载到内存中,一旦经过每个元素,我们在没有办法去访问他,因此SAX占用的内存小,效率更高。通常会使用SAX解析而不是DOM进行解析。
SAX以回调的形式进行解析。SAX用的是观察者模式(类似于GUI中的事件)。SAX接口称为事件驱动接口。
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.HandlerBase;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SaxTest1
{
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException
{
//得到一个解析工厂实例
SAXParserFactory factory = SAXParserFactory.newInstance();
//得到一个SAX解析器
SAXParser parser = factory.newSAXParser();
//进行解析
parser.parse(new File("student.xml"),new MyHander());
}
}
class MyHander extends DefaultHandler
{
@Override
public void startDocument() throws SAXException
{
System.out.println("parse begin");
}
@Override
public void endDocument() throws SAXException
{
System.out.println("parse finished");
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException
{
System.out.println("start element");
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException
{
System.out.println("finished element");
}
}
XML Schema总结
简单元素:指只能包含文本内容,不包含子元素,也没有属性。
格式:<xs:element name="XX" type="xs:string"/>
<xs:element name="age" type="xs:string">
属性:所有的元素的属性均被定义为简单类型,只有复杂元素才可以拥有属性。
格式<xs:attribute name="xx" type="yyy"/>
所有属性默认情况下都是可选的,我们可以通过use关键字明确的指出是可选的或必要的。
<xs:attribute name="lang" type="xs:string" use="optional"/>
我们可以通过default或fixed为简单类型(简单元素,属性)
指定默认值或固定值。
<xs:element name="color" type="xs:string" default="red"/>
- XML解析(SAX详解)
- XML解析(SAX详解)
- SAX解析XML 详解
- SAX解析xml详解
- SAX解析XML 详解
- SAX解析XML 详解
- SAX解析XML 详解
- SAX解析XML 详解
- SAX解析XML 详解
- SAX方式解析XML详解
- xml解析(SAX)
- XML学习笔记(四):xml解析详解以及使用 DOM和SAX 解析XML :
- XML解析(一),SAX解析XML
- sax解析xml(转)
- SAX解析XML(源代码)
- SAX解析XML(源代码)
- xml解析(sax java)
- XML文件解析(SAX)
- 面向对象之继承,封装,多态c语言实现
- GDI+笔记
- 以特定字符相隔or以空格相隔的字符串分割
- vc++高级班之注册表篇[2]---注册表中键的相关操作
- 《Android深度探索(卷1):HAL与驱动开发》虚拟实验环境(Ubuntu Linux)及源代码免费下载,不需要CPU虚拟化支持
- XML解析(SAX详解)
- vc++高级班之注册表篇[3]---注册表中键值的相关操作
- 1004 大数
- Android---把用户带入另外一个应用程序(二)
- Objective-C 协议 简介 +委托的实现
- XML解析(SAX详解)
- 区分虚拟网卡与物理网卡
- asp.net错误处理的三种方法
- 得到win7 win8的桌面句柄