Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QAbstractXmlReceiver Class Reference
[QtXmlPatterns module]

该QAbstractXmlReceiver类提供了一个回调接口,用于将一个输出QXmlQueryMore...

通过继承QXmlSerializer

Methods


Detailed Description

该QAbstractXmlReceiver类提供了一个回调接口,用于将一个输出QXmlQuery

QAbstractXmlReceiver是提供一个回调接口的抽象基类,用于接收XQuery sequence,一个通常的输出QXmlQuery和转化的顺序为您选择,通常是XML的结构。考虑例子:

 QXmlQuery query;
 query.setQuery("doc('index.html')/html/body/p[1]");

 QXmlSerializer serializer(query, myOutputDevice);
 query.evaluateTo(&serializer);

首先它构造一个query这会从文档的第一段index.html。然后,它构造了一个XML serializerquerymyOutputDevice(请注意serializerXML receiver,即QAbstractXmlReceiver的一个子类) 。最后,它evaluatesquery,生产调用的有序序列serializer's回调函数。回调的序列转换查询输出到XML ,并将其写入到myOutputDevice

虽然该示例使用QXmlQuery产生回调到QAbstractXmlReceiver功能的序列,可以直接,只要你的电话的序列代表一个有效的调用回调函数XQuery sequence

XQuery Sequences

一个XQuery sequence是零的有序集合,一个或多个items。每item或者是一个atomic valuenode。一个atomic value是一个简单的数据值。

有6种nodes

sequencenodesatomic values遵循以下规则。需要注意的是Namespace Node指的是一种特殊的Attribute Node与名xmlns

sequencenodesatomic values被发送到一个QAbstractXmlReceiver (QXmlSerializer在上面的例子)作为呼叫接收器的回调函数的序列。的回调函数序列的项目的映射如下。

对于一个完整的解释XQuery序列,请访问XQuery Data Model


Method Documentation

QAbstractXmlReceiver.__init__ (self)

构造一个抽象的XML接收器。

QAbstractXmlReceiver.atomicValue (self, QVariant value)

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

当一个原子值出现在这个回调函数被调用sequence。该value是一个简单的data value。它是保证valid

QAbstractXmlReceiver.attribute (self, QXmlName name, QStringRef value)

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

QAbstractXmlReceiver.characters (self, QStringRef value)

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

当一个文本节点会出现在这个回调函数被调用sequence。该value包含的文本。相邻的文本节点可能不会出现在sequence,也就是说,这个回调不能说是连续两次。

QAbstractXmlReceiver.comment (self, QString value)

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

当一个注释节点会出现在这个回调函数被调用sequence。该value是注释文本,其中不得包含字符串“ - ” 。

QAbstractXmlReceiver.endDocument (self)

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

当一个文档节点的末尾会出现在这个回调函数被调用sequence

QAbstractXmlReceiver.endElement (self)

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

当一个元素节点的结尾会出现在这个回调函数被调用sequence

QAbstractXmlReceiver.endOfSequence (self)

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

此回调被调用一次只,右后sequence结束。

QAbstractXmlReceiver.namespaceBinding (self, QXmlName name)

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

此回调被调用时,一个命名空间绑定在元素的范围。命名空间是由一个URI来定义。在QXmlName name,的值QXmlName.namespaceUri()是URI。价值QXmlName.prefix()是该URI被绑定到前缀。本地名称是微不足道的,可以是任意值。

QAbstractXmlReceiver.processingInstruction (self, QXmlName target, QString value)

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

当一个处理指令出现在此回调被调用sequence。处理指令用于在XML文档中告诉应用程序读取文件执行某些操作。一个典型的例子是使用处理指令来告诉应用程序使用特定的XSLT样式表来处理文档。

 <?xml-stylesheet type="test/xsl" href="formatter.xsl"?>

targetname的处理指令。其prefixnamespace URI必须都是空的。其local name是目标。在上面的例子中,域名是xml-stylesheet

value指定要采取的行动。注意,这个value不得包含字符串“ \u003e ” 。在上面的例子中,value is type="test/xsl" href="formatter.xsl

一般情况下,应避免使用处理指令,因为他们没有意识到命名空间和在许多情况下被剥离出来呢。处理指令通常可以替换为一个自定义的命名空间的元素。

QAbstractXmlReceiver.startDocument (self)

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

当一个文档节点出现在这个回调函数被调用sequence

QAbstractXmlReceiver.startElement (self, QXmlName name)

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

当一个新的元素节点出现在这个回调函数被调用sequencename是有效name该节点的元素。

QAbstractXmlReceiver.startOfSequence (self)

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

此回调被调用一次而已,正确的前sequence开始。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5