QXmlFormatter Class Reference

[QtXmlPatterns module]

该QXmlFormatter类是一个实现QXmlSerializer转化XQuery输出成XML格式。More…

继承QXmlSerializer

Methods

  • __init__ (self, QXmlQuery query, QIODevice outputDevice)
  • atomicValue (self, QVariant value)
  • attribute (self, QXmlName name, QStringRef value)
  • characters (self, QStringRef value)
  • comment (self, QString value)
  • endDocument (self)
  • endElement (self)
  • endOfSequence (self)
  • int indentationDepth (self)
  • processingInstruction (self, QXmlName name, QString value)
  • setIndentationDepth (self, int depth)
  • startDocument (self)
  • startElement (self, QXmlName name)
  • startOfSequence (self)

Detailed Description

该QXmlFormatter类是一个实现QXmlSerializer转化XQuery输出成XML格式。

QXmlFormatter是的一个子类QXmlSerializer该格式化XML输出,以方便人们阅读。

QXmlSerializer输出的XML无需增加不必要的空格。特别是,它不加newlines和缩进。为了使XML输出更易于阅读, QXmlFormatter增加newlines和缩进通过添加,删除和修改sequence nodes仅包含空白的。它还会修改空格在其他地方是不显着,例如,属性之间以及在文档序幕。

例如,其中基类QXmlSerializer将输出这样的:

  1. <a><b/><c/><p>Some Text</p></a>

QXmlFormatter输出这样的:

  1. <a>
  2. <b/>
  3. <c/>
  4. <p>Some Text</p>
  5. </a>

如果你只是想在一个人类可读的格式序列化的XML ,使用QXmlFormatter因为它是。默认的缩进级别为4个空格,但你可以设置你自己的缩进值setIndentationDepth( ) 。

newlines和缩进由QXmlFormatter加入适用于常见的格式,如XHTML ,SVG或Docbook的,空白的地方不显着。但是,如果你的XML将被用作输入空白的地方是显着,那么你必须编写自己的子类QXmlSerializer or QAbstractXmlReceiver

请注意,使用QXmlFormatter代替QXmlSerializer会增加计算开销和存储文件大小,由于空白的插入。

另请注意,缩进风格采用QXmlFormatter保持松散定义和Qt中的未来版本可能会改变。如果一个特定的缩进风格需要那么无论使用基类QXmlSerializer直接,或编写自己的子类QXmlSerializer or QAbstractXmlReceiver。或者,你可以继承QXmlFormatter和重新实现回调那里。

  1. [QXmlQuery](qxmlquery.html) query;
  2. query.setQuery("doc('index.html')/html/body/p[1]");
  3. QXmlFormatter formatter(query, myOutputDevice);
  4. formatter.setIndentationDepth(2);
  5. query.evaluateTo(&formatter);

Method Documentation

  1. QXmlFormatter.__init__ (self, QXmlQuery query, QIODevice outputDevice)

构造一个使用的名称游泳池和消息处理程序格式化query,并把结果写入outputDevice作为格式化的XML 。

outputDevice被直接传递到QXmlSerializer的构造。

See also QXmlSerializer

  1. QXmlFormatter.atomicValue (self, QVariant value)

从重新实现QAbstractXmlReceiver.atomicValue( ) 。

  1. QXmlFormatter.attribute (self, QXmlName name, QStringRef value)
  1. QXmlFormatter.characters (self, QStringRef value)

从重新实现QAbstractXmlReceiver.characters( ) 。

  1. QXmlFormatter.comment (self, QString value)

从重新实现QAbstractXmlReceiver.comment( ) 。

  1. QXmlFormatter.endDocument (self)

从重新实现QAbstractXmlReceiver.endDocument( ) 。

  1. QXmlFormatter.endElement (self)

从重新实现QAbstractXmlReceiver.endElement( ) 。

  1. QXmlFormatter.endOfSequence (self)

从重新实现QAbstractXmlReceiver.endOfSequence( ) 。

  1. int QXmlFormatter.indentationDepth (self)

返回的空格数QXmlFormatter将输出每个缩进级别。默认值是4 。

See also setIndentationDepth( ) 。

  1. QXmlFormatter.processingInstruction (self, QXmlName name, QString value)

从重新实现QAbstractXmlReceiver.processingInstruction( ) 。

  1. QXmlFormatter.setIndentationDepth (self, int depth)

Sets depth是的空格数QXmlFormatter将输出缩进的水平。默认值是4 。

See also indentationDepth( ) 。

  1. QXmlFormatter.startDocument (self)

从重新实现QAbstractXmlReceiver.startDocument( ) 。

  1. QXmlFormatter.startElement (self, QXmlName name)

从重新实现QAbstractXmlReceiver.startElement( ) 。

  1. QXmlFormatter.startOfSequence (self)

从重新实现QAbstractXmlReceiver.startOfSequence( ) 。