QXmlDefaultHandler Class Reference

[QtXml module]

该QXmlDefaultHandler类提供了所有的XML处理程序类的默认实现。More…

继承QXmlContentHandlerQXmlErrorHandlerQXmlDTDHandlerQXmlEntityResolverQXmlLexicalHandlerQXmlDeclHandler

Methods

  • __init__ (self)
  • bool attributeDecl (self, QString eName, QString aName, QString type, QString valueDefault, QString value)
  • bool characters (self, QString ch)
  • bool comment (self, QString ch)
  • bool endCDATA (self)
  • bool endDocument (self)
  • bool endDTD (self)
  • bool endElement (self, QString namespaceURI, QString localName, QString qName)
  • bool endEntity (self, QString name)
  • bool endPrefixMapping (self, QString prefix)
  • bool error (self, QXmlParseException exception)
  • QString errorString (self)
  • bool externalEntityDecl (self, QString name, QString publicId, QString systemId)
  • bool fatalError (self, QXmlParseException exception)
  • bool ignorableWhitespace (self, QString ch)
  • bool internalEntityDecl (self, QString name, QString value)
  • bool notationDecl (self, QString name, QString publicId, QString systemId)
  • bool processingInstruction (self, QString target, QString data)
  • (bool, QXmlInputSource ret) resolveEntity (self, QString publicId, QString systemId)
  • setDocumentLocator (self, QXmlLocator locator)
  • bool skippedEntity (self, QString name)
  • bool startCDATA (self)
  • bool startDocument (self)
  • bool startDTD (self, QString name, QString publicId, QString systemId)
  • bool startElement (self, QString namespaceURI, QString localName, QString qName, QXmlAttributes atts)
  • bool startEntity (self, QString name)
  • bool startPrefixMapping (self, QString prefix, QString uri)
  • bool unparsedEntityDecl (self, QString name, QString publicId, QString systemId, QString notationName)
  • bool warning (self, QXmlParseException exception)

Detailed Description

该QXmlDefaultHandler类提供了所有的XML处理程序类的默认实现。

这个类聚拢专门的处理程序类的功能,实现自定义处理程序的子类时,使其成为一个方便的起点QXmlReader,特别是QXmlSimpleReader。从每一个基类的虚函数重新实现这个类,对于很多常见情况提供合理的默认行为。通过继承这个类,并重写这些功能,你可以专注于实现应用程序相关的处理程序的各个部分。

XML读取器必须被告知在分析过程中使用的不同种类的事件的处理程序。这意味着,虽然QXmlDefaultHandler提供的所有基类继承的函数的默认实现,我们仍然可以使用专门的处理程序为特定类型的事件。

例如, QXmlDefaultHandler两个子类QXmlContentHandlerQXmlErrorHandler,所以通过继承它,我们可以使用相同的处理器为以下两个读卡器功能:

  1. xmlReader.setContentHandler(handler);
  2. xmlReader.setErrorHandler(handler);

由于阅读器将通知解析错误的处理程序中,有必要重新实现QXmlErrorHandler.fatalError( )如果,例如,我们想停止这样的时候发生错误解析:

  1. bool Handler.fatalError (const [QXmlParseException](qxmlparseexception.html) & exception)
  2. {
  3. qWarning() << "Fatal error on line" << exception.lineNumber()
  4. << ", column" << exception.columnNumber() << ":"
  5. << exception.message();
  6. return false;
  7. }

上面的函数返回False ,它告诉读者停止解析。继续使用相同的阅读器,就必须建立新的处理程序实例,并且设置了阅读器把它用在上面描述的方式。

重要的是要研究一些继承QXmlDefaultHandler的功能,并考虑他们为什么会在自定义处理程序来重新实现是非常有用的。自定义处理程序通常会重新实现QXmlContentHandler.startDocument( )准备处理程序的新内容。文档中的元素和其中的文本可以通过重新实现处理QXmlContentHandler.startElement( )QXmlContentHandler.endElement()和QXmlContentHandler.characters( ) 。您可能需要重新实现QXmlContentHandler.endDocument()来对内容进行一些最后确定或验证,一旦该文件已被完全读取。


Method Documentation

  1. QXmlDefaultHandler.__init__ (self)

构造一个处理程序与子类使用QXmlReader

  1. bool QXmlDefaultHandler.attributeDecl (self, QString eName, QString aName, QString type, QString valueDefault, QString value)

从重新实现QXmlDeclHandler.attributeDecl( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.characters (self, QString ch)

从重新实现QXmlContentHandler.characters( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.comment (self, QString ch)

从重新实现QXmlLexicalHandler.comment( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.endCDATA (self)

从重新实现QXmlLexicalHandler.endCDATA( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.endDocument (self)

从重新实现QXmlContentHandler.endDocument( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.endDTD (self)

从重新实现QXmlLexicalHandler.endDTD( ) 。

这个重新实现不执行任何操作。

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

从重新实现QXmlContentHandler.endElement( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.endEntity (self, QString name)

从重新实现QXmlLexicalHandler.endEntity( ) 。

这个重新实现不执行任何操作。

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

从重新实现QXmlContentHandler.endPrefixMapping( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.error (self, QXmlParseException exception)

从重新实现QXmlErrorHandler.error( ) 。

这个重新实现不执行任何操作。

  1. QString QXmlDefaultHandler.errorString (self)

从重新实现QXmlContentHandler.errorString( ) 。

返回默认的错误字符串。

  1. bool QXmlDefaultHandler.externalEntityDecl (self, QString name, QString publicId, QString systemId)

从重新实现QXmlDeclHandler.externalEntityDecl( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.fatalError (self, QXmlParseException exception)

从重新实现QXmlErrorHandler.fatalError( ) 。

这个重新实现不执行任何操作。

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

从重新实现QXmlContentHandler.ignorableWhitespace( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.internalEntityDecl (self, QString name, QString value)

从重新实现QXmlDeclHandler.internalEntityDecl( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.notationDecl (self, QString name, QString publicId, QString systemId)

从重新实现QXmlDTDHandler.notationDecl( ) 。

这个重新实现不执行任何操作。

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

从重新实现QXmlContentHandler.processingInstruction( ) 。

这个重新实现不执行任何操作。

  1. (bool, QXmlInputSource ret) QXmlDefaultHandler.resolveEntity (self, QString publicId, QString systemId)

从重新实现QXmlEntityResolver.resolveEntity( ) 。

Sets ret为0,从而使读取器使用的XML文件中提供的系统标识符。

  1. QXmlDefaultHandler.setDocumentLocator (self, QXmlLocator locator)

从重新实现QXmlContentHandler.setDocumentLocator( ) 。

这个重新实现不执行任何操作。

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

从重新实现QXmlContentHandler.skippedEntity( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.startCDATA (self)

从重新实现QXmlLexicalHandler.startCDATA( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.startDocument (self)

从重新实现QXmlContentHandler.startDocument( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.startDTD (self, QString name, QString publicId, QString systemId)

从重新实现QXmlLexicalHandler.startDTD( ) 。

这个重新实现不执行任何操作。

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

从重新实现QXmlContentHandler.startElement( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.startEntity (self, QString name)

从重新实现QXmlLexicalHandler.startEntity( ) 。

这个重新实现不执行任何操作。

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

从重新实现QXmlContentHandler.startPrefixMapping( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.unparsedEntityDecl (self, QString name, QString publicId, QString systemId, QString notationName)

从重新实现QXmlDTDHandler.unparsedEntityDecl( ) 。

这个重新实现不执行任何操作。

  1. bool QXmlDefaultHandler.warning (self, QXmlParseException exception)

从重新实现QXmlErrorHandler.warning( ) 。

这个重新实现不执行任何操作。