xml.sax (Structured Markup) – Python 中文开发手册

作者: Arvin Chen 分类: python 来源: Break易站(www.breakyizhan.com)
  •   Python 中文开发手册

    xml.sax (Structured Markup) - Python 中文开发手册

    2.0版本中的新功能。

    该xml.sax软件包提供了许多实现Python简单API(SAX)接口的模块。程序包本身提供SAX异常和SAX API用户最常使用的便利功能。

    Warning

    该xml.sax模块对恶意构建的数据不安全。如果您需要解析不可信或未经身份验证的数据,请参阅XML漏洞。

    便利功能是:

    xml.sax.make_parser([parser_list])

    创建并返回一个SAX XMLReader对象。找到的第一个解析器将被使用。如果提供了parser_list,它必须是一个字符串序列,这些字符串命名具有名为函数的模块create_parser()。parser_list中列出的模块将在解析器默认列表中的模块之前使用。

    xml.sax.parse(filename_or_stream, handler[, error_handler])

    创建一个SAX解析器并用它来解析文档。 以filename_or_stream形式传入的文档可以是文件名或文件对象。 处理程序参数需要是SAX ContentHandler实例。 如果给出error_handler,它必须是一个SAX ErrorHandler实例; 如果省略,则会在所有错误中引发SAXParseException。 没有回报价值; 所有的工作必须由传入的处理程序来完成。

    xml.sax.parseString(string, handler[, error_handler])

    与parse()类似,但从作为参数接收的缓冲区字符串中解析。

    典型的SAX应用程序使用三种对象:读者,处理程序和输入源。在这种情况下,“读者”是解析器的另一个术语,即某些代码从输入源读取字节或字符,并产生一系列事件。事件然后被分配给处理程序对象,即读者调用处理程序上的方法。因此,SAX应用程序必须获取reader对象,创建或打开输入源,创建处理程序并将这些对象连接在一起。作为准备的最后一步,读者被调用来解析输入。在解析过程中,处理程序对象的方法基于来自输入数据的结构和语法事件来调用。

    对于这些对象,只有接口是相关的; 它们通常不是由应用程序本身实例化的。 由于Python没有明确的接口概念,因此它们被正式引入为类,但是应用程序可能会使用不从所提供的类继承的实现。 InputSource,Locator,Attributes,AttributesNS和XMLReader接口在模块xml.sax.xmlreader中定义。 处理程序接口在xml.sax.handler中定义。 为了方便,InputSource(通常直接实例化)和处理程序类也可以从xml.sax中获得。 这些接口如下所述。

    除这些类外,xml.sax还提供以下异常类。

    exception xml.sax.SAXException(msg[, exception])

    封装XML错误或警告。该类可以包含来自XML解析器或应用程序的基本错误或警告信息:它可以被分类以提供附加功能或添加本地化。请注意,虽然ErrorHandler界面中定义的处理程序会接收此异常的实例,但实际并不需要引发异常 - 它也可用作信息容器。

    实例化时,msg 应该是错误的可读描述。可选的异常参数(如果给出)应该是None解析代码捕获的异常,并作为信息传递。

    这是其他SAX异常类的基类。

    exception xml.sax.SAXParseException(msg, exception, locator)

    解析错误引发SAXException的子类。 将此类的实例传递给SAX ErrorHandler接口的方法,以提供有关分析错误的信息。 该类支持SAX Locator接口以及SAXException接口。

    exception xml.sax.SAXNotRecognizedException(msg[, exception])

    当SAX XMLReader遇到无法识别的特征或属性时引发SAXException的子类。 SAX应用程序和扩展可能会将此类用于类似目的。

    exception xml.sax.SAXNotSupportedException(msg[, exception])

    SAXException的子类在SAX XMLReader被要求启用不支持的功能或将属性设置为实现不支持的值时引发。 SAX应用程序和扩展可能会将此类用于类似目的。

    扩展内容

    SAX:XML的简单API这个站点是定义SAX API的焦点。 它提供了Java实现和在线文档。 实现和历史信息的链接也可用。 模块xml.sax.handler应用程序提供的对象的接口定义。 模块xml.sax.saxutils用于SAX应用程序的便捷函数。 模块xml.sax.xmlreader解析器提供的对象的接口定义。

    1. SAXException对象

    该SAXException异常类支持下列方法:

    SAXException.getMessage()

    返回描述错误情况的可读信息。

    SAXException.getException()

    返回一个封装的异常对象,或者None。

  •   Python 中文开发手册
  •   本文标题:xml.sax (Structured Markup) – Python 中文开发手册 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/python/35375.html
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注