WEB开发网
开发学院软件开发Java JAXP 全面介绍,第 1 部分:XML 处理工具包使解析... 阅读

JAXP 全面介绍,第 1 部分:XML 处理工具包使解析和验证变得更容易

 2010-04-06 00:00:00 来源:WEB开发网   
核心提示: 在 清单 1 中,可以看到在使用工厂时出现两个特定于 JAXP 的问题:无法获得或配置 SAX 工厂,JAXP 全面介绍,第 1 部分:XML 处理工具包使解析和验证变得更容易(7),及无法配置 SAX 解析器,第一个问题由 FactoryConfigurationError 表示,这些方法可以

在 清单 1 中,可以看到在使用工厂时出现两个特定于 JAXP 的问题:无法获得或配置 SAX 工厂,及无法配置 SAX 解析器。第一个问题由 FactoryConfigurationError 表示,通常发生在无法获得 JAXP 实现或系统特性中指定的解析器时。第二个问题由 ParserConfigurationException 表示,发生在请求的特性在所使用的解析器中不可用时。两个问题都易于处理,且不应在使用 JAXP 时造成任何困难。事实上,您可能想要编写代码,来尝试设置几个特征并巧妙处理某个特性不可用时的情况。

SAXParser 实例是在获得工厂、关闭名称空间支持并打开验证时获得的;然后解析开始。SAX 解析器的 parse() 方法采用前面提到的 SAX HandlerBase 帮助类的一个实例,自定义处理器类继承自该类。请参阅代码发行版来查看该类的实现的完整 Java 清单。还传递 File 以进行解析。但是,SAXParser 类不只包含这一个方法。

使用 SAX 解析器

一旦具有 SAXParser 类的实例后,您可以做的远远不止于给它传递 File 来解析。由于大型应用程序中组件的通信方式,所以假设对象实例的创建者就是它的用户并不总是安全的。一个组件可能创建 SAXParser 实例,而另一个组件(可能由另一个开发人员编码)可能需要使用相同的实例。因此,JAXP 提供了确定解析器的设置的方法。例如,可以使用 isValidating() 来确定解析器是否将执行验证,使用 isNamespaceAware() 来查看解析器是否可以处理 XML 文档中的名称空间。这些方法可以为您提供关于解析器可以做什么的信息,但只带有 SAXParser 实例而非 SAXParserFactory 本身的用户无法更改这些特性。您必须在解析器工厂级别完成这一操作。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:JAXP 全面 介绍

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接