该 接 口 唯 一 的 方 法
public InputSource resolveEntity(String publicId, String
systemId)
允许应用程序解析外部实体。并返回一个
InputSource 类的对象或者为 null,用于读
取实体信息
。解析器将在打开任何外部实体前调用此方法。此类实体包括在 DTD 内
引用的外部
DTD 子集和外部参数实体和在文档元素内引用的外部通用实体等。如果
SAX
应用程序需要实现自定义处理外部实体,则必须实现此接口。
11、ErrorHandler 接口
ErrorHandler 接口是 SAX 错误处理程序的基本接口。如果 SAX 应用程序需要实现自
定义的错误处理,则它必须实现此接口,然后解析器将通过此接口报告所有的错误和
警告。
该接口的方法如下:
void error(SAXParseException exception)
接收可恢复的错误通知
void fatalError(SAXParseException exception)
接收不可恢复的错误通知
void warning(SAXParseException exception)
接收警告的通知
12、SAX 的其他类和接口介绍
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();
18、DOM 的优缺点
优点:
DOM 的优势主要表现在:易用性强,使用 DOM 时,将把所有的 XML 文档信息都存于内
存中,并且遍历简单,支持
XPath,增强了易用性。
缺点:
DOM 的缺点主要表现在:效率低,解析速度慢,内存占用量过高,对于大文件来说几乎
不可能使用。另外效率低还表现在大量的消耗时间,因为使用
DOM 进行解析时,将为文
档的每个
element、attribute、processing-instrUCtion 和 comment 都创建一个对象,
这样在
DOM
机制中所运用的大量对象的创建和销毁无疑会影响其效率。
19、文档模型