QXmlContentHandler Class Reference

[QtXml module]

该QXmlContentHandler类提供了一个接口来报告XML数据的逻辑内容。More…

通过继承QXmlDefaultHandler

Methods

  • __init__ (self)
  • __init__ (self, QXmlContentHandler)
  • bool characters (self, QString ch)
  • bool endDocument (self)
  • bool endElement (self, QString namespaceURI, QString localName, QString qName)
  • bool endPrefixMapping (self, QString prefix)
  • QString errorString (self)
  • bool ignorableWhitespace (self, QString ch)
  • bool processingInstruction (self, QString target, QString data)
  • setDocumentLocator (self, QXmlLocator locator)
  • bool skippedEntity (self, QString name)
  • bool startDocument (self)
  • bool startElement (self, QString namespaceURI, QString localName, QString qName, QXmlAttributes atts)
  • bool startPrefixMapping (self, QString prefix, QString uri)

Detailed Description

该QXmlContentHandler类提供了一个接口来报告XML数据的逻辑内容。

如果应用程序需要被告知基本解析事件,它可以实现此接口,并使用激活QXmlReader.setContentHandler( ) 。然后,读者可以像报告通过此接口的开始和元素和字符数据的结束基本文档相关的事件。

在此界面中事件的顺序是非常重要的,反映的信息的顺序在文档本身中。例如,所有的元素的内容(字符数据,处理指令,以及子元素)时,按顺序之间的startElement()事件和相应的endElement()事件。

QXmlDefaultHandler提供了该接口的默认实现,从子类QXmlDefaultHandler类是非常方便的,如果你只想要获知一些解析事件。

startDocument( )函数被调用的文件的开始,并endDocument()被调用时结束。解析开始之前setDocumentLocator()被调用。对于每个元素startElement()被调用,以endElement()被调用时各元件的端部。该characters( )函数被调用字符的数据块;ignorableWhitespace( )被调用的空白块,processingInstruction( )被调用,处理指令。如果一个实体被跳过skippedEntity()被调用。在前缀的URI范围的开始startPrefixMapping()被调用。


Method Documentation

  1. QXmlContentHandler.__init__ (self)
  1. QXmlContentHandler.__init__ (self, QXmlContentHandler)
  1. bool QXmlContentHandler.characters (self, QString ch)

这种方法是抽象的,应在任何子类中重新实现。

读者调用该函数时,它已经被解析的字符数据块(在CDATA节无论是正常的字符数据或字符数据,如果您需要这两种类型之间的区别,您必须使用QXmlLexicalHandler.startCDATA()和QXmlLexicalHandler.endCDATA())。字符数据中报告ch

有些读者使用空白报告元素内容中的ignorableWhitespace( )函数,而不是使用这一个。

读者可能会报告在一个以上的块元素的字符数据,如读者可能想报导“ A \u003cB ”的三个字符( )事件( “A” , “ \u003c ”和“b” ) 。

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

  1. bool QXmlContentHandler.endDocument (self)

这种方法是抽象的,应在任何子类中重新实现。

读者调用该函数后,它已完成了解析。这就是所谓的只有一次,而且是所谓的最后一个处理函数。这就是所谓的后读者已经阅读所有输入或已经放弃,因为一个致命的错误解析。

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

See also startDocument( ) 。

  1. bool QXmlContentHandler.endElement (self, QString namespaceURI, QString localName, QString qName)

这种方法是抽象的,应在任何子类中重新实现。

读者调用该函数时,它已经被解析的限定名结束元素标记qName,本地名称localName和命名空间URInamespaceURI

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

See also startElement()和Namespace Support via Features

  1. bool QXmlContentHandler.endPrefixMapping (self, QString prefix)

这种方法是抽象的,应在任何子类中重新实现。

读者调用这个函数信号前缀映射为前缀的结束prefix

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

See also startPrefixMapping()和Namespace Support via Features

  1. QString QXmlContentHandler.errorString (self)

这种方法是抽象的,应在任何子类中重新实现。

读者调用这个函数来得到一个错误字符串,如如有的处理函数返回False 。

  1. bool QXmlContentHandler.ignorableWhitespace (self, QString ch)

这种方法是抽象的,应在任何子类中重新实现。

有些读者可能会使用这个功能来报告空白的每个块元素内容。的空白报导在ch

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

  1. bool QXmlContentHandler.processingInstruction (self, QString target, QString data)

这种方法是抽象的,应在任何子类中重新实现。

读者调用该函数时,它已经解析的处理指令。

target作为处理指令的目标名称和data在处理指令的数据。

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

  1. QXmlContentHandler.setDocumentLocator (self, QXmlLocator locator)

这种方法是抽象的,应在任何子类中重新实现。

它开始解析文档之前,读者调用这个函数。这个论点locator是一个指针,指向QXmlLocator它允许应用程序获取文档中的解析位置。

不破坏locator;当阅读器被破坏它被破坏。 (请勿使用locator之后,读者被破坏) 。

  1. bool QXmlContentHandler.skippedEntity (self, QString name)

这种方法是抽象的,应在任何子类中重新实现。

有些读者可能会跳过,如果他们还没有看到声明的实体(例如,因为它们是在外部DTD ) 。如果他们这样做,他们报告说,他们跳过称为实体name通过调用这个函数。

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

  1. bool QXmlContentHandler.startDocument (self)

这种方法是抽象的,应在任何子类中重新实现。

当它开始解析文档阅读器调用这个函数。读者调用这个函数只有一次,来电后setDocumentLocator( ) ,和之前在这个类中,或在任何其他职能QXmlDTDHandler类调用。

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

See also endDocument( ) 。

  1. bool QXmlContentHandler.startElement (self, QString namespaceURI, QString localName, QString qName, QXmlAttributes atts)

这种方法是抽象的,应在任何子类中重新实现。

读者调用该函数时,它已经解析的开始元素标记。

有相应的endElement( )调用时,相应的结束元素标籤被读取。在startElement()中和endElement( )调用总是正确的嵌套。空元素标籤(例如<x/>)引起的startElement ( )调用将紧跟一个endElement( )调用。

所提供的属性列表仅包含显式值的属性。在属性列表中包含用于命名空间声明属性(即属性开始的xmlns )只有当读者的命名空间前缀属性为True 。

这个论点namespaceURI是命名空间URI ,或一个空字符串,如果该元素没有命名空间URI,如果没有命名空间处理完成。localName是本地名称(不带前缀) ,或者如果没有命名空间处理完成一个空字符串,qName是限定名称(带有前缀)和atts顷的属性附加到元素。如果没有属性,atts是一个空的属性对象。

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

See also endElement()和Namespace Support via Features

  1. bool QXmlContentHandler.startPrefixMapping (self, QString prefix, QString uri)

这种方法是抽象的,应在任何子类中重新实现。

读者调用这个函数信号的前缀, URI命名空间的映射范围开始。这些信息是没有必要的正常的命名空间的处理,因为读者会自动替换为前缀的元素和属性的名称。

注意的startPrefixMapping ()和endPrefixMapping( )的调用不能保证正确嵌套相对于对方:对应前发生的所有的startPrefixMapping ( )事件startElement()事件,以及所有endPrefixMapping( )对应后发生的事件endElement( )事件,但它们的顺序是没有其他保证。

这个论点prefix为命名空间前缀被宣布和参数uri是命名空间URI的前缀映射到。

如果这个函数返回False读者停止解析和报告错误。读者使用函数errorString( )来获得错误信息。

See also endPrefixMapping()和Namespace Support via Features