background image

该 接 口 唯 一 的 方 法

public InputSource resolveEntity(String publicId, String 

systemId) 

允许应用程序解析外部实体。并返回一个

InputSource 类的对象或者为 null,用于读

取实体信息

 。解析器将在打开任何外部实体前调用此方法。此类实体包括在 DTD 内

引用的外部

DTD 子集和外部参数实体和在文档元素内引用的外部通用实体等。如果

SAX

 

应用程序需要实现自定义处理外部实体,则必须实现此接口。

11ErrorHandler 接口

ErrorHandler 接口是 SAX 错误处理程序的基本接口。如果 SAX 应用程序需要实现自
定义的错误处理,则它必须实现此接口,然后解析器将通过此接口报告所有的错误和

 

警告。
该接口的方法如下:
void error(SAXParseException exception) 

 

接收可恢复的错误通知

void fatalError(SAXParseException exception) 

 

接收不可恢复的错误通知

void warning(SAXParseException exception) 

 

接收警告的通知

12SAX 的其他类和接口介绍

XMLReaderFactory  
XMLReaderFactory 是一个 final 类,创建 XML 解析器的工厂类。 
该类包含两个静态方法,如下:

 

static XMLReader createXMLReader()尝试从系统默认值创建一个 XMLReader 

static   XMLReader   createXMLReader(String   className)

 

尝 试 从 类 名 称

className 创建一个 XMLReader 类名称 className 必须可以被实例化为一个
XML

 “

解析器。一般为

org.apache.xerces.parsers.SAXParser”

 

类。

13、创建 SAX 解析器

1)用系统默认值来创建一个 XMLReader

 

(解析器):

XMLReader reader = XMLReaderFactory.createXMLReader(); 

2)从给定的类名称来创建一个 XMLReader :

XMLReader reader=XMLReaderFactory.createXMLReader
("org.apache.xerces.parsers.SAXParse");

3)使用 javax.xml.parsers 包中的 SAXParserFactory 类和 SAXParser 类创建:

 

SAXParserFactory spFactory = SAXParserFactory.newInstance();
SAXParser sParser = spFactory.newSAXParser(); 

18DOM 的优缺点
优点:
DOM 的优势主要表现在:易用性强,使用 DOM 时,将把所有的 XML 文档信息都存于内
存中,并且遍历简单,支持

XPath,增强了易用性。

缺点:
DOM 的缺点主要表现在:效率低,解析速度慢,内存占用量过高,对于大文件来说几乎
不可能使用。另外效率低还表现在大量的消耗时间,因为使用

DOM 进行解析时,将为文

档的每个

element、attribute、processing-instrUCtion 和 comment 都创建一个对象,

这样在

DOM

 

机制中所运用的大量对象的创建和销毁无疑会影响其效率。

19、文档模型