Python's Archiver

為方便港臺同胞閱覽,Python中國特別推出簡繁體內容轉換功能

blackball 发表于 2008-11-13 23:29

8.12 xml.sax.xmlreader -- XML 解析器接口

8.12 xml.sax.xmlreader -- XML 解析器接口

出现于2.0

SAX解析器实现了XMLReader接口。它们在一个Python模块中被实现,
这个模块必须提供一个create_parser()函数。这个函数由xml.sax.make_parser()
调用,并且不需要触底一个参数就可以创建一个解析器对象。

class XMLReader()
  可以被SAX解析器继承的基类。

class IncrementalParser()
  在某些情况下,并不急于马上解析输入源,而是将这些数据用来填充
  文档的数据块,知道这些文档都可用为止。值得一提的是,读入器
  一般不会读入整个文件,也不会在数据块里面读入整个文件。
  parse()不会给出返回值,直到整个文件都被处理了。因此这个接口
  应该用在parse()经常会发生阻塞行为的时候。

  当解析器被实例化了之后(is instantiated?)它便立马可以接受来自于
  种子方法(feed method)的数据。当调用close方法完成解析之后reset方法
  就必须被调用来使解析器做好下一次读的准备,不管是通过解析的方法
  还是通过种子方法(feed method)。

  值得一提的是,这些方法不能在解析期间被调用,也就是在解析器被调用
  直到它返回之前都不能调用这些方法。
  
  默认情况下,此类实现了XMLReader接口,通过IncrementalParser接口的feed,close和reset方法,作为SAX2.0
  的driver writers的一个方便之处。

class Locator()
  用来联系SAX事件和文档位置的接口。一个定位器对象将会返回有效的结构当且仅当
  处于调用了DocumentHandler方法期间。在其他的任何时间,返回的结果都是不可预
  测的。如果没有可用信息,方法会返回None
  
class InputSource()
  XMLReader所需要用来进行读数据的信息封装体。
  
  这个类里面可能包含了公共标志符,系统标志符,字节流或者实体字符流的信息。
  
  应用程序将会创建这个类的对象用来在XMLReader.parser()里面使用和从
  EntityResolver.resolverEntity里返回时使用.
  
  一个InputSource属于这个应用程序,XMLReader不能对此InputSource对象进行修改
  但是它可以通过拷贝并且修改那些拷贝的方法来进行修改。
  
class AttributesImpl(attrs)
  这是Attributes接口(请参看8.12.5)的一个实现。这是一个类似于词典一样的对象
  ,这个对象表示一个在startElement()调用中的元素的属性。对一些最有用的词典操
  作的补充,它支持很多其他的方法,这些方法在接口里面有相应的描述。
  这个类的对象应该被阅读器实例化,attrs必须是一个类词典的对象,包含这一个从
  属性名字到属性值的映射。
  
class AttributesNSImpl(attrs,qnames)
  是名称空间敏感(Namespace-aware?)的AttrbutesImpl的变体,它将被当作startElementNS()
  的参数传入。它继承自AttributesImpl类,但是可以接受属性名为namespaceURI和localname
  的二元组。另外,它提供了很多其他的方法,用来描述出现在原始文档里的名字。
  这个类实现了AttributesNS接口(具体请参考8.12.6)  

[url=http://bugway.cn]BlackBall[/url]翻译,拙劣之处请不吝赐教。E-mail: [email]bugway@gmail.com[/email]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.