使用_JAVA_语言对_XML_数据进行教程分析.pptVIP

使用_JAVA_语言对_XML_数据进行教程分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
额外功能的使用 在使用 SAX 解析器时,可以在程序中启用某些额外的功能,比如支持验证、支持命名空间等等。SAXParserFactory 中为此提供了一些设置方法 : setValidating(boolean?validating) 是否在解析的同时进行验证 setNamespaceAware(boolean?awareness) 是否支持命名空间 具体的程序代码可能如下所示: SAXParserFactory spf = SAXParserFactory.newInstance( ) spf.setValidating(true); spf.setNamespaceAware(true); SAXParser sp = spf.newSAXParser(); 这样一来,工厂类对象 spf 创建的所有 SAXParser 解析器都支持验证和命名空间。 也可以使用 SAXParserFactory 的 setFeature(String?name, boolean?value) 来完成同样的操作。 SAXParserFactory spf = SAXParserFactory.newInstance( ) spf.setFeature(/sax/features/validation, true); spf.setFeature(/sax/features/namespaces, true); SAXParser sp = spf.newSAXParser(); /xml/features/validation/schema/augment-psvi 是否启用扩展的 PSVI /sax/features/external-parameter-entities 是否支持外部参数实体 8.3.2 SAX 模型中回调函数的重写 使用 SAX 模型解析 XML 数据的关键在于编写适当的回调函数,并在其中实现所需的数据处理逻辑。下面将详细地介绍每种回调函数的作用和使用,当然还需要确定一个假想的数据处理逻辑,这里假设在对某个 XML 文档进行处理时,仅仅只是将其中的内容复制一遍(这个处理逻辑非常简单,后面将其称为 SAXEcho 任务),那么应该如何编写相应的回调函数呢? void setDocumentLocator(Locator?locator) 接收文档事件的 Locator 对象。默认情况下,不执行任何操作。如果应用程序编写者希望存储定位器以用于其他的文档事件,则可以在子类中重写此方法。该定位器仅在调用 SAX 事件回调期间,在 startDocument 返回之后,调用 endDocument 之前,返回正确的信息。 用例:对于 SAXEcho 任务,如果需要在某个事件发生时,获得该事件对应于 XML 文档中的位置,则可以编写如下代码。 private Locator locator; void setDocumentLocator(Locator locator) { this.locator = locator; } void startDocument( ) 接收文档开始的通知。默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在文档的开始采取特定的措施(如分配树的根节点或创建输出文件)。通常,发生在其他任何事件回调(不包括 setDocumentLocator)之前,SAX 解析器仅调用此方法一次。 用例:对于 SAXEcho 任务,在碰到 startDocument 事件时表示开始处理输入 XML 文档内容,这时只需要输出 XML 声明即可。 void startDocument() { System.out.print(?xml version=\1.0\?\n); } void endDocument( ) 接收文档结束的通知。默认情况下,不执行任何操作。应用程序编写者可以在子类中重写此方法,以便在文档的结束处采取特定的操作(如,结束树或关闭输出文件)。SAX 解析器仅调用此方法一次,并且它将是解析期间最后调用的方法。直到解析器放弃解析(由于不可恢复的错误)或到达输入的结尾时,它才可以调用此方法。 用例:对于 SAXEcho 任务,在碰到 endDocument 事件时表示即将结束对输入 XML 文档内容的处理,不需要进行任何操作。 void endDocument() { // Do not need to do anything. } 用例:对于 SAXEcho 任务,在碰到 startElement 事件时表示处理到某个 XML 元素的开始标记,这时需要手动输出该元素开始标记的所有内容(包括属性、命名空间声明

文档评论(0)

挺进公司 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档