19.14. xml.sax.xmlreader — XML 解析器的接口

2.0 版中的新Function。

SAX 解析器实现XMLReader接口。它们在 Python 模块中实现,该模块必须提供create_parser()函数。 xml.sax.make_parser()不带任何参数调用此函数以创建新的解析器对象。

解析器实例化后,就可以立即开始从 feed 方法接受数据了。解析完成后,pass调用 close 来结束,必须调用 reset 方法以使解析器准备好接受来自 feed 或使用 parse 方法的新数据。

请注意,在解析过程中(即在调用解析之后且返回之前),这些方法一定不能*被调用。

默认情况下,该类还使用 IncrementalParser 接口的 feed,close 和 reset 方法来实现 XMLReader 接口的 parse 方法,以方便 SAX 2.0 驱动程序编写器。

此类可以包括有关公共标识符,系统标识符,字节流(可能带有字符编码信息)和/或实体的字符流的信息。

应用程序将创建此类的对象以用于XMLReader.parse()方法并从 EntityResolver.resolveEntity 返回。

InputSource属于应用程序,但是XMLReader不允许修改从应用程序传递给它的InputSource对象,尽管它可以进行复制和修改。

19.14.1. XMLReader 对象

XMLReader界面支持以下方法:

SAX 解析器不需要为错误和警告提供本地化;如果它们不能支持请求的语言环境,则必须引发 SAX 异常。应用程序可能会在解析过程中请求更改语言环境。

19.14.2. IncrementalParser 对象

IncrementalParser的实例提供以下其他方法:

19.14.3. 定位器对象

Locator的实例提供以下方法:

19.14.4. InputSource 对象

编码必须是 XML 编码语句可接受的字符串(请参阅 XML 建议的 4.3.3 节)。

如果InputSource还包含字符流,则将忽略InputSource的编码属性。

如果还指定了一个字符流,则 SAX 解析器将忽略此设置,但是它会优先使用字节流而不是打开 URI 连接本身。

如果应用程序知道字节流的字符编码,则应使用 setEncoding 方法进行设置。

getEncoding 方法将返回此字节流的字符编码,如果未知,则返回None

如果指定了字符流,则 SAX 解析器将忽略任何字节流,并且不会try打开与系统标识符的 URI 连接。

19.14.5. 属性界面

Attributes个对象实现了 Map 协议的一部分,包括方法copy()get()has_key()items()keys()values()。还提供以下方法:

19.14.6. AttributesNS 接口

此接口是Attributes接口的子类型(请参阅属性界面)。该接口支持的所有方法在AttributesNS对象上也可用。

也可以使用以下方法:

首页