QXmlStreamWriterclass provides an XML writer with a simple streaming API. 更多 …
def
autoFormatting
()
def
autoFormattingIndent
()
def
codec
()
def
device
()
def
hasError
()
def
setAutoFormatting
(arg__1)
def
setAutoFormattingIndent
(spacesOrTabs)
def
setCodec
(codec)
def
setCodec
(codecName)
def
setDevice
(device)
def
writeAttribute
(attribute)
def
writeAttribute
(namespaceUri, name, value)
def
writeAttribute
(qualifiedName, value)
def
writeAttributes
(attributes)
def
writeCDATA
(text)
def
writeCharacters
(text)
def
writeComment
(text)
def
writeCurrentToken
(reader)
def
writeDTD
(dtd)
def
writeDefaultNamespace
(namespaceUri)
def
writeEmptyElement
(namespaceUri, name)
def
writeEmptyElement
(qualifiedName)
def
writeEndDocument
()
def
writeEndElement
()
def
writeEntityReference
(name)
def
writeNamespace
(namespaceUri[, prefix=””])
def
writeProcessingInstruction
(target[, data=””])
def
writeStartDocument
()
def
writeStartDocument
(version)
def
writeStartDocument
(version, standalone)
def
writeStartElement
(namespaceUri, name)
def
writeStartElement
(qualifiedName)
def
writeTextElement
(namespaceUri, name, text)
def
writeTextElement
(qualifiedName, text)
QXmlStreamWriteris the counterpart toQXmlStreamReader为写入 XML。像其相关类,它操作QIODevice指定采用setDevice(). The API is simple and straightforward: for every XML token or event you want to write, the writer provides a specialized function.开始文档采用
writeStartDocument()and end it withwriteEndDocument(). This will implicitly close all remaining open tags.Element tags are opened with
writeStartElement()followed bywriteAttribute()orwriteAttributes(), element content, and thenwriteEndElement(). A shorter formwriteEmptyElement()can be used to write empty elements, followed bywriteAttributes().Element content consists of either characters, entity references or nested elements. It is written with
writeCharacters(), which also takes care of escaping all forbidden characters and character sequences,writeEntityReference(), or subsequent calls towriteStartElement(). A convenience methodwriteTextElement()can be used for writing terminal elements that contain nothing but text.The following abridged code snippet shows the basic use of the class to write formatted XML with indentation:
QXmlStreamWriter stream(&output); stream.setAutoFormatting(true); stream.writeStartDocument(); ... stream.writeStartElement("bookmark"); stream.writeAttribute("href", "http://qt-project.org/"); stream.writeTextElement("title", "Qt Project"); stream.writeEndElement(); // bookmark ... stream.writeEndDocument();
QXmlStreamWritertakes care of prefixing namespaces, all you have to do is specify thenamespaceUriwhen writing elements or attributes. If you must conform to certain prefixes, you can force the writer to use them by declaring the namespaces manually with eitherwriteNamespace()orwriteDefaultNamespace(). Alternatively, you can bypass the stream writer’s namespace support and use overloaded methods that take a qualified name instead. The namespace http://www.w3.org/XML/1998/namespace is implicit and mapped to the prefix xml .The stream writer can automatically format the generated XML data by adding line-breaks and indentation to empty sections between elements, making the XML data more readable for humans and easier to work with for most source code management systems. The feature can be turned on with the
autoFormattingproperty, and customized with theautoFormattingIndent特性。Other functions are
writeCDATA(),writeComment(),writeProcessingInstruction(),和writeDTD(). Chaining of XML streams is supported withwriteCurrentToken().默认情况下,
QXmlStreamWriterencodes XML in UTF-8. Different encodings can be enforced usingsetCodec().If an error occurs while writing to the underlying device,
hasError()starts returning true and subsequent writes are ignored.QXmlStream 书签范例 illustrates how to use a stream writer to write an XML bookmark file (XBEL) that was previously read in by a
QXmlStreamReader.
QXmlStreamWriter
¶
QXmlStreamWriter(array)
QXmlStreamWriter(device)
- param array
- param device
构造流写入器。
另请参阅
Constructs a stream writer that writes into
array
. This is the same as creating an xml writer that operates on a
QBuffer
device which in turn operates on
array
.
Constructs a stream writer that writes into
device
;
PySide2.QtCore.QXmlStreamWriter.
autoFormatting
(
)
¶
bool
返回
true
若自动格式化被启用,否则
false
.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
autoFormattingIndent
(
)
¶
int
PySide2.QtCore.QXmlStreamWriter.
codec
(
)
¶
Returns the codec that is currently assigned to the stream.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
device
(
)
¶
返回被当前设备关联的
QXmlStreamWriter
,或
None
若没有设备被赋值。
另请参阅
PySide2.QtCore.QXmlStreamWriter.
hasError
(
)
¶
bool
返回
true
若写入失败。
This can happen if the stream failed to write to the underlying device or if the data to be written contained invalid characters.
The error status is never reset. Writes happening after the error occurred may be ignored, even if the error condition is cleared.
PySide2.QtCore.QXmlStreamWriter.
setAutoFormatting
(
arg__1
)
¶
arg__1
–
bool
启用自动格式化若
enable
is
true
,否则禁用它。
默认值为
false
.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
setAutoFormattingIndent
(
spacesOrTabs
)
¶
spacesOrTabs
–
int
PySide2.QtCore.QXmlStreamWriter.
setCodec
(
codec
)
¶
codec
–
QTextCodec
Sets the codec for this stream to
codec
. The codec is used for encoding any data that is written. By default,
QXmlStreamWriter
uses UTF-8.
The encoding information is stored in the initial xml tag which gets written when you call
writeStartDocument()
. Call this function before calling
writeStartDocument()
.
注意
When writing the XML to a
QString
, the codec information is ignored and the XML header will not include any encoding information, since all QStrings are UTF-16. If you later convert the
QString
to an 8-bit format, you must arrange for the encoding information to be transmitted out-of-band.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
setCodec
(
codecName
)
¶
codecName – str
Sets the codec for this stream to the
QTextCodec
为指定编码通过
codecName
。常见值对于
codecName
include “ISO 8859-1”, “UTF-8”, and “UTF-16”. If the encoding isn’t recognized, nothing happens.
注意
When writing the XML to a
QString
, the codec information is ignored and the XML header will not include any encoding information, since all QStrings are UTF-16. If you later convert the
QString
to an 8-bit format, you must arrange for the encoding information to be transmitted out-of-band.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
setDevice
(
device
)
¶
device
–
QIODevice
把当前设备设为
device
. If you want the stream to write into a
QByteArray
,可以创建
QBuffer
设备。
另请参阅
PySide2.QtCore.QXmlStreamWriter.
writeAttribute
(
namespaceUri
,
name
,
value
)
¶
namespaceUri – unicode
name – unicode
value – unicode
Writes an attribute with
name
and
value
, prefixed for the specified
namespaceUri
. If the namespace has not been declared yet,
QXmlStreamWriter
will generate a namespace declaration for it.
This function can only be called after
writeStartElement()
before any content is written, or after
writeEmptyElement()
.
PySide2.QtCore.QXmlStreamWriter.
writeAttribute
(
qualifiedName
,
value
)
¶
qualifiedName – unicode
value – unicode
这是重载函数。
Writes an attribute with
qualifiedName
and
value
.
This function can only be called after
writeStartElement()
before any content is written, or after
writeEmptyElement()
.
PySide2.QtCore.QXmlStreamWriter.
writeAttribute
(
attribute
)
¶
attribute
–
QXmlStreamAttribute
这是重载函数。
写入
attribute
.
This function can only be called after
writeStartElement()
before any content is written, or after
writeEmptyElement()
.
PySide2.QtCore.QXmlStreamWriter.
writeAttributes
(
attributes
)
¶
attributes
–
QXmlStreamAttributes
Writes the attribute vector
attributes
. If a namespace referenced in an attribute not been declared yet,
QXmlStreamWriter
will generate a namespace declaration for it.
This function can only be called after
writeStartElement()
before any content is written, or after
writeEmptyElement()
.
PySide2.QtCore.QXmlStreamWriter.
writeCDATA
(
text
)
¶
text – unicode
写入
text
as CDATA section. If
text
contains the forbidden character sequence “]]>”, it is split into different CDATA sections.
This function mainly exists for completeness. Normally you should not need use it, because
writeCharacters()
automatically escapes all non-content characters.
PySide2.QtCore.QXmlStreamWriter.
writeCharacters
(
text
)
¶
text – unicode
写入
text
. The characters “<”, “&”, and “”” are escaped as entity references “<”, “&, and “"”. To avoid the forbidden sequence “]]>”, “>” is also escaped as “>”.
PySide2.QtCore.QXmlStreamWriter.
writeComment
(
text
)
¶
text – unicode
写入
text
as XML comment, where
text
must not contain the forbidden sequence “–” or end with “-“. Note that XML does not provide any way to escape “-” in a comment.
PySide2.QtCore.QXmlStreamWriter.
writeCurrentToken
(
reader
)
¶
reader
–
QXmlStreamReader
Writes the current state of the
reader
. All possible valid states are supported.
The purpose of this function is to support chained processing of XML data.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
writeDTD
(
dtd
)
¶
dtd – unicode
Writes a DTD section. The
dtd
represents the entire doctypedecl production from the XML 1.0 specification.
PySide2.QtCore.QXmlStreamWriter.
writeDefaultNamespace
(
namespaceUri
)
¶
namespaceUri – unicode
Writes a default namespace declaration for
namespaceUri
.
若
writeStartElement()
or
writeEmptyElement()
was called, the declaration applies to the current element; otherwise it applies to the next child element.
Note that the namespaces http://www.w3.org/XML/1998/namespace (bound to xmlns ) and http://www.w3.org/2000/xmlns/ (bound to xml ) by definition cannot be declared as default.
PySide2.QtCore.QXmlStreamWriter.
writeEmptyElement
(
namespaceUri
,
name
)
¶
namespaceUri – unicode
name – unicode
Writes an empty element with
name
, prefixed for the specified
namespaceUri
. If the namespace has not been declared,
QXmlStreamWriter
will generate a namespace declaration for it. Subsequent calls to
writeAttribute()
will add attributes to this element.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
writeEmptyElement
(
qualifiedName
)
¶
qualifiedName – unicode
这是重载函数。
Writes an empty element with qualified name
qualifiedName
. Subsequent calls to
writeAttribute()
will add attributes to this element.
PySide2.QtCore.QXmlStreamWriter.
writeEndDocument
(
)
¶
Closes all remaining open start elements and writes a newline.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
writeEndElement
(
)
¶
Closes the previous start element.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
writeEntityReference
(
name
)
¶
name – unicode
Writes the entity reference
name
to the stream, as “&``name`` ;”.
PySide2.QtCore.QXmlStreamWriter.
writeNamespace
(
namespaceUri
[
,
prefix=""
]
)
¶
namespaceUri – unicode
prefix – unicode
Writes a namespace declaration for
namespaceUri
with
prefix
。若
prefix
is empty,
QXmlStreamWriter
assigns a unique prefix consisting of the letter ‘n’ followed by a number.
若
writeStartElement()
or
writeEmptyElement()
was called, the declaration applies to the current element; otherwise it applies to the next child element.
Note that the prefix xml is both predefined and reserved for http://www.w3.org/XML/1998/namespace , which in turn cannot be bound to any other prefix. The prefix xmlns and its URI http://www.w3.org/2000/xmlns/ are used for the namespace mechanism itself and thus completely forbidden in declarations.
PySide2.QtCore.QXmlStreamWriter.
writeProcessingInstruction
(
target
[
,
data=""
]
)
¶
target – unicode
data – unicode
Writes an XML processing instruction with
target
and
data
,其中
data
must not contain the sequence “?>”.
PySide2.QtCore.QXmlStreamWriter.
writeStartDocument
(
)
¶
这是重载函数。
Writes a document start with XML version number “1.0”. This also writes the encoding information.
PySide2.QtCore.QXmlStreamWriter.
writeStartDocument
(
version
)
¶
version – unicode
Writes a document start with the XML version number
version
.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
writeStartDocument
(
version
,
standalone
)
¶
version – unicode
standalone
–
bool
Writes a document start with the XML version number
version
and a standalone attribute
standalone
.
另请参阅
PySide2.QtCore.QXmlStreamWriter.
writeStartElement
(
namespaceUri
,
name
)
¶
namespaceUri – unicode
name – unicode
Writes a start element with
name
, prefixed for the specified
namespaceUri
. If the namespace has not been declared yet,
QXmlStreamWriter
will generate a namespace declaration for it. Subsequent calls to
writeAttribute()
will add attributes to this element.
PySide2.QtCore.QXmlStreamWriter.
writeStartElement
(
qualifiedName
)
¶
qualifiedName – unicode
这是重载函数。
Writes a start element with
qualifiedName
. Subsequent calls to
writeAttribute()
will add attributes to this element.
PySide2.QtCore.QXmlStreamWriter.
writeTextElement
(
namespaceUri
,
name
,
text
)
¶
namespaceUri – unicode
name – unicode
text – unicode
Writes a text element with
name
, prefixed for the specified
namespaceUri
,和
text
. If the namespace has not been declared,
QXmlStreamWriter
will generate a namespace declaration for it.
This is a convenience function equivalent to:
writeStartElement(namespaceUri, name)
writeCharacters(text)
writeEndElement()
PySide2.QtCore.QXmlStreamWriter.
writeTextElement
(
qualifiedName
,
text
)
¶
qualifiedName – unicode
text – unicode
这是重载函数。
Writes a text element with
qualifiedName
and
text
.
This is a convenience function equivalent to:
writeStartElement(qualifiedName)
writeCharacters(text)
writeEndElement()