QXmlStreamWriter Class Reference

[QtCore module]

该QXmlStreamWriter类提供了一个XML编写一个简单的流API 。More…

Methods

  • __init__ (self)
  • __init__ (self, QIODevice device)
  • __init__ (self, QByteArray array)
  • __init__ (self, QString string)
  • bool autoFormatting (self)
  • int autoFormattingIndent (self)
  • QTextCodec codec (self)
  • QIODevice device (self)
  • bool hasError (self)
  • setAutoFormatting (self, bool)
  • setAutoFormattingIndent (self, int spaces)
  • setCodec (self, QTextCodec codec)
  • setCodec (self, str codecName)
  • setDevice (self, QIODevice device)
  • writeAttribute (self, QString qualifiedName, QString value)
  • writeAttribute (self, QString namespaceUri, QString name, QString value)
  • writeAttribute (self, QXmlStreamAttribute attribute)
  • writeAttributes (self, QXmlStreamAttributes attributes)
  • writeCDATA (self, QString text)
  • writeCharacters (self, QString text)
  • writeComment (self, QString text)
  • writeCurrentToken (self, QXmlStreamReader reader)
  • writeDefaultNamespace (self, QString namespaceUri)
  • writeDTD (self, QString dtd)
  • writeEmptyElement (self, QString qualifiedName)
  • writeEmptyElement (self, QString namespaceUri, QString name)
  • writeEndDocument (self)
  • writeEndElement (self)
  • writeEntityReference (self, QString name)
  • writeNamespace (self, QString namespaceUri, QString prefix = QString())
  • writeProcessingInstruction (self, QString target, QString data = QString())
  • writeStartDocument (self)
  • writeStartDocument (self, QString version)
  • writeStartDocument (self, QString version, bool standalone)
  • writeStartElement (self, QString qualifiedName)
  • writeStartElement (self, QString namespaceUri, QString name)
  • writeTextElement (self, QString qualifiedName, QString text)
  • writeTextElement (self, QString namespaceUri, QString name, QString text)

Detailed Description

该QXmlStreamWriter类提供了一个XML编写一个简单的流API 。

QXmlStreamWriter是对口QXmlStreamReader用于编写XML 。像它的相关的类,它运行在一个QIODevice与指定setDevice( ) 。该API是​​简单而直接:为每个XML标记或你想要写的事件,笔者提供了一个专门的功能。

开始时你有一个文件writeStartDocument( )和结束它writeEndDocument( ) 。这将隐式关闭所有剩馀的开放标籤。

元素标记开writeStartElement( ),随后writeAttribute()或writeAttributes() ,元素的内容,然后writeEndElement( ) 。较短的形式writeEmptyElement( )可以用来写空元素,其次是writeAttributes( ) 。

元素含量由两种字符,实体引用或嵌套元素。这是用writeCharacters( ) ,这也需要转义禁止所有字符和字符序列的照顾,writeEntityReference( ) ,或后续调用writeStartElement( ) 。一种简便方法writeTextElement( )可用于编写仅仅包含文本终端元素。

下面简略的代码片段显示了基本使用的类来写格式化的XML缩进:

  1. QXmlStreamWriter stream(&output);
  2. stream.setAutoFormatting(true);
  3. stream.writeStartDocument();
  4. ...
  5. stream.writeStartElement("bookmark");
  6. stream.writeAttribute("href", "http://qt.nokia.com/");
  7. stream.writeTextElement("title", "Qt Home");
  8. stream.writeEndElement(); // bookmark
  9. ...
  10. stream.writeEndDocument();

QXmlStreamWriter采用前缀命名空间的照顾,你需要做的就是指定namespaceUri写元素或属性的时候。如果您必须符合一定的前缀,你可以强制笔者通过手动声明的命名空间使用它们writeNamespace()或writeDefaultNamespace( ) 。或者,您可以绕过流作家的命名空间支持,并使用该采取一个合格的名称,而不是重载方法。命名空间http://www.w3.org/XML/1998/namespace是隐式映射到前缀xml

流作家可以通过添加换行符和缩进到元素之间的空白部分,使XML数据的可读性更强的人类和更容易使用的大部分源代码管理系统自动格式化生成的XML数据。该功能可以被打开以autoFormatting物业和定制与autoFormattingIndent属性。

其它功能writeCDATA( )writeComment( )writeProcessingInstruction()和writeDTD( ) 。 XML流的链接时支持writeCurrentToken( ) 。

默认情况下, QXmlStreamWriter XML编码为UTF -8 。不同的编码可以通过强制执行setCodec( ) 。

如果在写入到底层设备发生错误,hasError( )开始返回真和随后的写入被忽略。

QXmlStream Bookmarks Example说明如何使用流作家写一个XML书籤文件( XBEL ) ,是由以前在读QXmlStreamReader


Method Documentation

  1. QXmlStreamWriter.__init__ (self)

构造一个流作家。

See also setDevice( ) 。

  1. QXmlStreamWriter.__init__ (self, QIODevice device)

构造一个流作家写入到device;

  1. QXmlStreamWriter.__init__ (self, QByteArray array)

构造一个流作家写入到array。这是一样的创建XML编写器运行在一个QBuffer装置,该装置反过来作用于array

  1. QXmlStreamWriter.__init__ (self, QString string)

构造一个流作家写入到string

  1. bool QXmlStreamWriter.autoFormatting (self)
  1. int QXmlStreamWriter.autoFormattingIndent (self)
  1. QTextCodec QXmlStreamWriter.codec (self)

[

返回当前分配给流的编解码器。

]($docs-qtextcodec.html)

See also setCodec( ) 。

  1. QIODevice QXmlStreamWriter.device (self)

返回与关联的当前设备QXmlStreamWriter,或者0,如果没有设备已经被分配。

See also setDevice( ) 。

  1. bool QXmlStreamWriter.hasError (self)

返回True如果流无法写入到基础设备,否则返回False 。

错误状态永远不会复位。发生写入错误发生后会被忽略,即使错误条件被清除。

此功能被引入Qt的4.8 。

  1. QXmlStreamWriter.setAutoFormatting (self, bool)
  1. QXmlStreamWriter.setAutoFormattingIndent (self, int spaces)
  1. QXmlStreamWriter.setCodec (self, QTextCodec codec)

设置编解码器,该流codec。编解码器是用于编码被写入任何数据。默认情况下,QXmlStreamWriter使用UTF-8 。

该编码信息存储在其中,当你调用将会写入初始XML标记writeStartDocument( ) 。在调用之前调用此函数writeStartDocument( ) 。

See also codec( ) 。

  1. QXmlStreamWriter.setCodec (self, str codecName)

设置编解码器,该数据流的QTextCodec对于由指定的编码codecName。为共同的价值观codecName包括“ ISO 8859 ”,“ UTF-8” ,和“UTF- 16” 。如果编码不被识别,没有任何反应。

See also QTextCodec.codecForName( ) 。

  1. QXmlStreamWriter.setDevice (self, QIODevice device)

设置当前设备device。如果你想流写入到一个QByteArray,你可以创建一个QBuffer设备。

See also device( ) 。

  1. QXmlStreamWriter.writeAttribute (self, QString qualifiedName, QString value)

写与属性namevalue,前缀为指定namespaceUri。如果命名空间还没有被宣布的是,QXmlStreamWriter将生成一个命名空间声明它。

此功能后,才可以称为writeStartElement( )任何内容被写入之前,或之后writeEmptyElement( ) 。

  1. QXmlStreamWriter.writeAttribute (self, QString namespaceUri, QString name, QString value)

这是一个重载函数。

写与属性qualifiedNamevalue

此功能后,才可以称为writeStartElement( )任何内容被写入之前,或之后writeEmptyElement( ) 。

  1. QXmlStreamWriter.writeAttribute (self, QXmlStreamAttribute attribute)

这是一个重载函数。

attribute

此功能后,才可以称为writeStartElement( )任何内容被写入之前,或之后writeEmptyElement( ) 。

  1. QXmlStreamWriter.writeAttributes (self, QXmlStreamAttributes attributes)

写入属性向量attributes。如果在属性中引用的命名空间没有被宣布的是,QXmlStreamWriter将生成一个命名空间声明它。

此功能后,才可以称为writeStartElement( )任何内容被写入之前,或之后writeEmptyElement( ) 。

See also writeAttribute()和writeNamespace( ) 。

  1. QXmlStreamWriter.writeCDATA (self, QString text)

Writes text作为CDATA节。如果text包含禁止字符序列“ ]]\u003e ” ,它被分成不同的CDATA节。

此功能主要存在的完整性。通常你应该不需要使用它,因为writeCharacters( )自动转义所有非内容的字符。

  1. QXmlStreamWriter.writeCharacters (self, QString text)

Writes text。字符“ \u003c ” , “& ”和“ ” “被转义为实体引用”\u003c“ , ”& ,和“”“ 。为了避免禁止序列“ ]]\u003e ” , “ \u003e ”也转义为“ \u003e ” 。

See also writeEntityReference( ) 。

  1. QXmlStreamWriter.writeComment (self, QString text)

Writes text作为XML注释,其中text不得含有禁序列“ - ”或终结“ - ” 。在注释 - 请注意, XML不提供任何方式来逃避“ ” 。

  1. QXmlStreamWriter.writeCurrentToken (self, QXmlStreamReader reader)

写入的当前状态reader。所有可能的有效状态的支持。

此功能的目的是为了支持XML数据的链接的处理。

See also QXmlStreamReader.tokenType( ) 。

  1. QXmlStreamWriter.writeDefaultNamespace (self, QString namespaceUri)

写一个默认的命名空间声明namespaceUri

If writeStartElement()或writeEmptyElement( )被调用,该声明适用于当前元素,否则它适用于下一个子元素。

请注意,命名空间http://www.w3.org/XML/1998/namespace(绑定到xmlns)和http://www.w3.org/2000/xmlns/(绑定到xml)由定义不能被声明为默认值。

  1. QXmlStreamWriter.writeDTD (self, QString dtd)

写一个DTD部分。该dtd表示从XML 1.0规范整个doctypedecl产品。

  1. QXmlStreamWriter.writeEmptyElement (self, QString qualifiedName)

写一个空元素与name,前缀为指定namespaceUri。如果命名空间还没有被宣布,QXmlStreamWriter将生成一个命名空间声明它。后续调用writeAttribute( )将属性添加到这个元素。

See also writeNamespace( ) 。

  1. QXmlStreamWriter.writeEmptyElement (self, QString namespaceUri, QString name)

这是一个重载函数。

写一个空元素与限定名qualifiedName。后续调用writeAttribute( )将属性添加到这个元素。

  1. QXmlStreamWriter.writeEndDocument (self)

关闭所有剩馀的开放开始元素和写入一个换行符。

See also writeStartDocument( ) 。

  1. QXmlStreamWriter.writeEndElement (self)

关闭以前开始元素。

See also writeStartElement( ) 。

  1. QXmlStreamWriter.writeEntityReference (self, QString name)

写实体引用name到流中,如“与name; “ 。

  1. QXmlStreamWriter.writeNamespace (self, QString namespaceUri, QString prefix = QString())

写一个命名空间声明namespaceUriprefix。如果prefix是空的,QXmlStreamWriter指定由字母’ N’后跟一个数字的唯一的前缀。

If writeStartElement()或writeEmptyElement( )被调用,该声明适用于当前元素,否则它适用于下一个子元素。

注意,前缀xml是预定义的和保留的http://www.w3.org/XML/1998/namespace,这反过来又不能绑定到任何其他前缀。前缀xmlns和它的URIhttp://www.w3.org/2000/xmlns/用于命名空间机制本身,因此在声明中完全禁止的。

  1. QXmlStreamWriter.writeProcessingInstruction (self, QString target, QString data = QString())

写一个XML处理指令targetdata,其中data不得包含序列“ ? \u003e ” 。

  1. QXmlStreamWriter.writeStartDocument (self)

写入一个文件的开始与XML版本号version

See also writeEndDocument( ) 。

  1. QXmlStreamWriter.writeStartDocument (self, QString version)

写入一个文件的开始与XML版本号version和一个独立的属性standalone

此功能被引入Qt的4.5 。

See also writeEndDocument( ) 。

  1. QXmlStreamWriter.writeStartDocument (self, QString version, bool standalone)

这是一个重载函数。

写入一个文件开始的XML版本号“1.0” 。这也写入编码信息。

此功能被引入Qt的4.5 。

See also writeEndDocument()和setCodec( ) 。

  1. QXmlStreamWriter.writeStartElement (self, QString qualifiedName)

写一个开始元素与name,前缀为指定namespaceUri。如果命名空间还没有被宣布的是,QXmlStreamWriter将生成一个命名空间声明它。后续调用writeAttribute( )将属性添加到这个元素。

See also writeNamespace( )writeEndElement()和writeEmptyElement( ) 。

  1. QXmlStreamWriter.writeStartElement (self, QString namespaceUri, QString name)

这是一个重载函数。

写一个开始元素与qualifiedName。后续调用writeAttribute( )将属性添加到这个元素。

See also writeEndElement()和writeEmptyElement( ) 。

  1. QXmlStreamWriter.writeTextElement (self, QString qualifiedName, QString text)

写入一个文本元素与name,前缀为指定namespaceUritext。如果命名空间还没有被宣布,QXmlStreamWriter将生成一个命名空间声明它。

这是一个方便的功能等同于:

  1. writeStartElement(namespaceUri, name);
  2. writeCharacters(text);
  3. writeEndElement();
  1. QXmlStreamWriter.writeTextElement (self, QString namespaceUri, QString name, QString text)

这是一个重载函数。

写入一个文本元素与qualifiedNametext

这是一个方便的功能等同于:

  1. writeStartElement(qualifiedName);
  2. writeCharacters(text);
  3. writeEndElement();