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

QDomNode Class Reference
[QtXml module]

该QDomNode类是在DOM树中所有节点的基类。More...

通过继承QDomAttrQDomCharacterDataQDomDocumentQDomDocumentFragmentQDomDocumentTypeQDomElementQDomEntityQDomEntityReferenceQDomNotationQDomProcessingInstruction

Types

Methods

Special Methods


Detailed Description

该QDomNode类是在DOM树中所有节点的基类。

DOM中的许多函数返回一个QDomNode 。

你可以找出使用节点的类型isAttr( )isCDATASection( )isDocumentFragment( )isDocument( )isDocumentType( )isElement( )isEntityReference( )isText( )isEntity( )isNotation( )isProcessingInstruction( )isCharacterData()和isComment( ) 。

一个QDomNode可以使用转换成它的子类toAttr( )toCDATASection( )toDocumentFragment( )toDocument( )toDocumentType( )toElement( )toEntityReference( )toText( )toEntity( )toNotation( )toProcessingInstruction( )toCharacterData()或toComment( ) 。您可以将节点转换为一个空节点clear( ) 。

使用显式共享QDomNode类的副本共享他们的数据。这意味着修改一个节点会改变所有副本。这是结合特别有用,其职能返回QDomNode ,如firstChild( ) 。你可以使节点的独立(深)副本cloneNode( ) 。

一个QDomNode可以为null ,很像一个空指针。创建一个空节点结果的副本在另一个空节点。这是不可能修改一个空节点,但也可以指定其他的,可能是非空节点到它。在这种情况下,空节点的拷贝将保持为空。您可以检查是否有QDomNode为null调用isNull( ) 。一个QDomNode (或任何派生类)的空的构造函数创建一个空节点。

节点插入insertBefore( )insertAfter()或appendChild( ) 。你可以用另一个替换一个节点使用replaceChild( )并删除与节点removeChild( ) 。

遍历节点使用firstChild()来获取一个节点的第一个孩子(如果有的话) ,并nextSibling( )遍历。 QDomNode还提供lastChild( )previousSibling()和parentNode( ) 。为了找到与特定节点名称使用的第一个子节点namedItem( ) 。

要找出如果一个节点有子使用hasChildNodes( ),并得到所有的节点的子节点列表使用childNodes( ) 。

节点的名称和值(这取决于它的类型而变化的意思)被返回nodeName()和nodeValue( )分别。节点的类型是由返回nodeType( ) 。该节点的值可以与设置setNodeValue( ) 。

到节点所属的文档是由返回ownerDocument( ) 。

QDomText节点可以被合并成一个单一的节点normalize( ) 。

QDomElement节点都可以被检索到的属性attributes( ) 。

QDomElementQDomAttr节点可以有哪些可以检索与命名空间namespaceURI( ) 。他们的本地名称与检索localName() ,以及它们与前缀prefix( ) 。前缀可以被设置setPrefix( ) 。

您可以写节点的XML表示文本流save( ) 。

下面的例子查找XML文档中的第一个元素,并打印所有属于它的直接子元素的名称。

 QDomDocument d;
 d.setContent(someXML);
 QDomNode n = d.firstChild();
 while (!n.isNull()) {
     if (n.isElement()) {
         QDomElement e = n.toElement();
         cout << "Element name: " << e.tagName() << endl;
         break;
     }
     n = n.nextSibling();
 }

关于文档对象模型有进一步的信息Level 1Level 2 Core。对于更一般介绍的DOM实现的见QDomDocument文档。


Type Documentation

QDomNode.EncodingPolicy

此枚举指定如何QDomNode.save()确定序列化时使用何种编码。

Constant Value Description
QDomNode.EncodingFromDocument 1 该编码是从文件中取出。
QDomNode.EncodingFromTextStream 2 该编码是从取出QTextStream

另见的过载save( )函数,它接受一个EncodingPolicy 。

这个枚举被引入或修改的Qt 4.3 。

QDomNode.NodeType

这个枚举变量定义了节点的类型:

Constant Value Description
QDomNode.ElementNode 1  
QDomNode.AttributeNode 2  
QDomNode.TextNode 3  
QDomNode.CDATASectionNode 4  
QDomNode.EntityReferenceNode 5  
QDomNode.EntityNode 6  
QDomNode.ProcessingInstructionNode 7  
QDomNode.CommentNode 8  
QDomNode.DocumentNode 9  
QDomNode.DocumentTypeNode 10  
QDomNode.DocumentFragmentNode 11  
QDomNode.NotationNode 12  
QDomNode.BaseNode 21 A QDomNode对象,即,不是一个QDomNode子类。
QDomNode.CharacterDataNode 22  

Method Documentation

QDomNode.__init__ (self)

构造一个null节点。

QDomNode.__init__ (self, QDomNode)

构造的副本n

副本的数据是共享的(浅拷贝) :修改一个节点也将改变其他。如果你想使一个深拷贝,使用cloneNode( ) 。

QDomNode QDomNode.appendChild (self, QDomNode newChild)

追加可newChild作为节点的最后一个子。

If newChild是另一个节点的子节点,它被重设父到该节点。如果newChild是这个节点的子节点,然后其在儿童中的列表中的位置被改变。

If newChildQDomDocumentFragment,然后该片段的孩子从片段取出并追加。

If newChildQDomElement与该节点是QDomDocument已经有一个元素节点作为一个孩子,newChild不添加作为一个孩子,一个空节点返回。

返回一个新的参考newChild成功或null node失败。

一个空节点(创建,例如,使用默认构造函数)在调用该函数不执行任何操作,并返回一个null node

DOM规范不允许插入属性节点,但由于历史的原因, QDom接受他们无论如何。

See also insertBefore( )insertAfter( )replaceChild()和removeChild( ) 。

QDomNamedNodeMap QDomNode.attributes (self)

将返回所有属性的命名节点图。仅提供了属性QDomElement秒。

变更的属性的映射也将改变这个属性QDomNode

QDomNodeList QDomNode.childNodes (self)

将返回所有直接子节点的列表。

大多数情况下你都会调用这个函数的QDomElement对象。

例如,如果XML文件看起来像这样:

 <body>
 <h1>Heading</h1>
 <p>Hello <b>you</b></p>
 </body>

那么对于“身体”元素的子节点列表将包含由\u003ch1\u003e标记,并由\u003cp\u003e标籤创建的节点创建的节点。

在列表中的节点不会被复制,所以改变列表中的节点也将改变这个节点的子节点。

See also firstChild()和lastChild( ) 。

QDomNode.clear (self)

转换节点,进入一个空节点,如果它不是一个空节点之前,它的类型和内容将被删除。

See also isNull( ) 。

QDomNode QDomNode.cloneNode (self, bool deep = True)

创建的一个深(不浅)副本QDomNode

If deep是真的,那么克隆完成递归这意味着所有节点的子节点是深复制了。如果deep是假的只有节点本身被复制,并且复制将没有子节点。

int QDomNode.columnNumber (self)

对于由创建节点QDomDocument.setContent( ) ,这个函数返回的节点被解析的XML文档中的列数。否则,返回-1 。

这个函数是Qt 4.1中引入。

See also lineNumber()和QDomDocument.setContent( ) 。

QDomNode QDomNode.firstChild (self)

返回节点的第一个孩子。如果不存在子节点时,一null node返回。更改返回的节点也将改变在文档树中的节点。

See also lastChild()和childNodes( ) 。

QDomElement QDomNode.firstChildElement (self, QString tagName = QString())

返回与标记名称的第一个子元素tagName如果标记名非空,否则返回第一个子元素。返回如果没有这样的孩子存在一个空元素。

See also lastChildElement( )previousSiblingElement()和nextSiblingElement( ) 。

bool QDomNode.hasAttributes (self)

返回True如果节点有属性,否则返回False 。

See also attributes( ) 。

bool QDomNode.hasChildNodes (self)

返回True如果节点有一个或更多的孩子,否则返回False 。

QDomNode QDomNode.insertAfter (self, QDomNode newChild, QDomNode refChild)

插入节点newChild子节点之后refChildrefChild必须是此节点的直接子。如果refChild is null然后newChild被追加为这个节点的最后一个子节点。

If newChild是另一个节点的子节点,它被重设父到该节点。如果newChild是这个节点的子节点,然后其在儿童中的列表中的位置被改变。

If newChildQDomDocumentFragment,然后该片段的孩子从片段除去后插入refChild

返回一个新的参考newChild成功或null node失败。

DOM规范不允许插入属性节点,但由于历史的原因QDom接受他们不过。

See also insertBefore( )replaceChild( )removeChild()和appendChild( ) 。

QDomNode QDomNode.insertBefore (self, QDomNode newChild, QDomNode refChild)

插入节点newChild该子节点之前refChildrefChild必须是此节点的直接子。如果refChild is null然后newChild插入为节点的第一个孩子。

If newChild是另一个节点的子节点,它被重设父到该节点。如果newChild是这个节点的子节点,然后其在儿童中的列表中的位置被改变。

If newChildQDomDocumentFragment,然后该片段的孩子从片段取出并插入前refChild

返回一个新的参考newChild成功或null node失败。

DOM规范不允许插入属性节点,但由于历史的原因QDom接受他们不过。

See also insertAfter( )replaceChild( )removeChild()和appendChild( ) 。

bool QDomNode.isAttr (self)

返回True如果该节点是一个属性,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomAttribute ,你可以得到QDomAttribute与toAttribute ( ) 。

See also toAttr( ) 。

bool QDomNode.isCDATASection (self)

返回True如果该节点是一个CDATA部分,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomCDATASection,你可以得到QDomCDATASectiontoCDATASection( ) 。

See also toCDATASection( ) 。

bool QDomNode.isCharacterData (self)

返回True如果该节点是一个字符数据节点,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomCharacterData,你可以得到QDomCharacterDatatoCharacterData( ) 。

See also toCharacterData( ) 。

bool QDomNode.isComment (self)

返回True如果该节点是注释,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomComment,你可以得到QDomCommenttoComment( ) 。

See also toComment( ) 。

bool QDomNode.isDocument (self)

返回True如果该节点是一个文件,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomDocument,你可以得到QDomDocumenttoDocument( ) 。

See also toDocument( ) 。

bool QDomNode.isDocumentFragment (self)

返回True如果该节点是文档片段,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomDocumentFragment,你可以得到QDomDocumentFragmenttoDocumentFragment( ) 。

See also toDocumentFragment( ) 。

bool QDomNode.isDocumentType (self)

返回True如果该节点是一个文档类型,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomDocumentType,你可以得到QDomDocumentTypetoDocumentType( ) 。

See also toDocumentType( ) 。

bool QDomNode.isElement (self)

返回True如果该节点是一个元素,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomElement,你可以得到QDomElementtoElement( ) 。

See also toElement( ) 。

bool QDomNode.isEntity (self)

返回True如果该节点是一个实体,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomEntity,你可以得到QDomEntitytoEntity( ) 。

See also toEntity( ) 。

bool QDomNode.isEntityReference (self)

返回True如果该节点是一个实体引用,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomEntityReference,你可以得到QDomEntityReferencetoEntityReference( ) 。

See also toEntityReference( ) 。

bool QDomNode.isNotation (self)

返回True如果该节点是一个符号,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomNotation,你可以得到QDomNotationtoNotation( ) 。

See also toNotation( ) 。

bool QDomNode.isNull (self)

如果此节点为空,则返回True (即,如果它没有类型或内容),否则返回False 。

bool QDomNode.isProcessingInstruction (self)

返回True如果该节点是一个处理指令,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomProcessingInstruction,你可以得到QProcessingInstruction与toProcessingInstruction( ) 。

See also toProcessingInstruction( ) 。

bool QDomNode.isSupported (self, QString feature, QString version)

DOM实现是否实现该功能,则返回Truefeature而这个功能是支持在版本这个节点version否则返回False 。

See also QDomImplementation.hasFeature( ) 。

bool QDomNode.isText (self)

返回True如果该节点是一个文本节点,否则返回False 。

如果这个函数返回True ,这并不意味着该对象是一个QDomText,你可以得到QDomTexttoText( ) 。

See also toText( ) 。

QDomNode QDomNode.lastChild (self)

返回节点的最后一个子。如果不存在子节点时,一null node返回。更改返回的节点也将改变在文档树中的节点。

See also firstChild()和childNodes( ) 。

QDomElement QDomNode.lastChildElement (self, QString tagName = QString())

返回最后一个子元素与标籤名tagName如果标记名非空,否则返回最后一个子元素。返回如果没有这样的孩子存在一个空元素。

See also firstChildElement( )previousSiblingElement()和nextSiblingElement( ) 。

int QDomNode.lineNumber (self)

对于由创建节点QDomDocument.setContent( ) ,这个函数返回的节点被解析的XML文档中的行号。否则,返回-1 。

这个函数是Qt 4.1中引入。

See also columnNumber()和QDomDocument.setContent( ) 。

QString QDomNode.localName (self)

如果节点使用命名空间,这个函数返回节点的本地名称,否则返回一个空字符串。

类型的唯一节点ElementNode or AttributeNode可以有命名空间。命名空间必须被指定在创建时,它是不可能事后添加的命名空间。

QDomDocument.createAttributeNS( )

See also prefix( )namespaceURI()和QDomDocument.createElementNS( ) 。

QDomNode QDomNode.namedItem (self, QString name)

返回的第一个直接子节点nodeName( )等于name

如果没有这样的直接子存在,一null node返回。

See also nodeName( ) 。

QString QDomNode.namespaceURI (self)

QDomNode QDomNode.nextSibling (self)

返回在文档树中的下一个同级。更改返回的节点也将改变在文档树中的节点。

如果你有这样的XML :

 <h1>Heading</h1>
 <p>The text...</p>
 <h2>Next heading</h2>

QDomNode代表\u003cp\u003e标籤, nextSibling ( )将返回一个代表该\u003cH2\u003e标籤的节点。

See also previousSibling( ) 。

QDomElement QDomNode.nextSiblingElement (self, QString tagName = QString())

返回下一个同级元素与标籤名tagName如果tagName非空,否则返回任何一个同级元素。返回如果没有这样的兄弟姐妹存在一个空元素。

See also firstChildElement( )previousSiblingElement()和lastChildElement( ) 。

QString QDomNode.nodeName (self)

返回节点的名称。

这个名字的含义依赖于子类:

Name Meaning
QDomAttr The name of the attribute
QDomCDATASection The string "#cdata-section"
QDomComment The string "#comment"
QDomDocument The string "#document"
QDomDocumentFragment The string "#document-fragment"
QDomDocumentType The name of the document type
QDomElement The tag name
QDomEntity The name of the entity
QDomEntityReference The name of the referenced entity
QDomNotation The name of the notation
QDomProcessingInstruction The target of the processing instruction
QDomText The string "#text"

Note:处理元素和属性节点的名称时,此功能不采取命名空间的存在考虑。因此,返回的名称可以包含任何命名空间前缀可能存在。为了获得一个元素或属性的节点名,使用localName();获得命名空间前缀,使用namespaceURI( ) 。

See also nodeValue( ) 。

NodeType QDomNode.nodeType (self)

返回节点的类型。

See also toAttr( )toCDATASection( )toDocumentFragment( )toDocument( )toDocumentType( )toElement( )toEntityReference( )toText( )toEntity( )toNotation( )toProcessingInstruction( )toCharacterData()和toComment( ) 。

QString QDomNode.nodeValue (self)

返回节点的值。

该值的含义依赖于子类:

Name Meaning
QDomAttr The attribute value
QDomCDATASection The content of the CDATA section
QDomComment The comment
QDomProcessingInstruction The data of the processing instruction
QDomText The text

所有其他子类没有一个节点值,将返回一个空字符串。

See also setNodeValue()和nodeName( ) 。

QDomNode.normalize (self)

调用正常化( )的元素及其所有子转换成标准格式。这意味着相邻的QDomText对象将被合并成一个单一的文本对象(QDomCDATASection节点未合并) 。

QDomDocument QDomNode.ownerDocument (self)

返回此节点所属的文档。

QDomNode QDomNode.parentNode (self)

返回父节点。如果该节点没有父级,则返回一个空节点(即该节点isNull( )返回True ) 。

QString QDomNode.prefix (self)

返回节点或空字符串的命名空间前缀,如果该节点没有命名空间前缀。

类型的唯一节点ElementNode or AttributeNode可以有命名空间。命名空间前缀必须在创建时指定。如果一个节点是用命名空间前缀创建的,则可以在以后改变它setPrefix( ) 。

如果您创建一个元素或属性QDomDocument.createElement()或QDomDocument.createAttribute( ) ,前缀将是一个空字符串。如果你使用QDomDocument.createElementNS()或QDomDocument.createAttributeNS()代替,前缀不会是一个空字符串,但它可能是一个空字符串,如果该名称没有前缀。

QDomDocument.createElementNS( )QDomDocument.createAttributeNS( )

See also setPrefix( )localName()和namespaceURI( ) 。

QDomNode QDomNode.previousSibling (self)

返回在文档树中的前一个同级。更改返回的节点也将改变在文档树中的节点。

例如,如果你有这样的XML :

 <h1>Heading</h1>
 <p>The text...</p>
 <h2>Next heading</h2>

QDomNode代表\u003cp\u003e标籤, previousSibling ( )将返回一个代表该\u003ch1\u003e标记的节点。

See also nextSibling( ) 。

QDomElement QDomNode.previousSiblingElement (self, QString tagName = QString())

返回前sibilng元素与标籤名tagName如果tagName非空,否则返回任何一个同级元素。返回如果没有这样的兄弟姐妹存在一个空元素。

See also firstChildElement( )nextSiblingElement()和lastChildElement( ) 。

QDomNode QDomNode.removeChild (self, QDomNode oldChild)

移除oldChild从孩子的列表。oldChild必须是此节点的直接子。

返回一个新的参考oldChild成功或null node失败。

See also insertBefore( )insertAfter( )replaceChild()和appendChild( ) 。

QDomNode QDomNode.replaceChild (self, QDomNode newChild, QDomNode oldChild)

替换oldChildnewChildoldChild必须是此节点的直接子。

If newChild是另一个节点的子节点,它被重设父到该节点。如果newChild是这个节点的子节点,然后其在儿童中的列表中的位置被改变。

If newChildQDomDocumentFragment,然后oldChild被替换的所有片段的孩子。

返回一个新的参考oldChild成功或null node一个失败。

See also insertBefore( )insertAfter( )removeChild()和appendChild( ) 。

QDomNode.save (self, QTextStream, int)

写入节点的XML表示形式及其所有子到流str。此函数使用indent作为空间缩进量的节点。

如果这个节点是一个文档节点,文本流的编码str的编码是由名为“ xml”的治疗处理指令的XML声明,如果这样的人存在,否则默认为UTF - 8设置。 XML声明不是处理指令,但存在由于历史原因,这个行为。如果这个节点不是一个文档节点,文本流的编码。

如果文档中包含无效的XML字符或不能在给定的编码进行编码的字符,结果和行为是不确定的。

QDomNode.save (self, QTextStream, int, EncodingPolicy)

If encodingPolicy is QDomNode.EncodingFromDocument这个函数的作用是保存(QTextStream&海峡,诠释缩进) 。

If encodingPolicy is EncodingFromTextStream而这个节点是一个文档节点,这个函数的行为就像保存(QTextStream&海峡,诠释缩进)除了在文本流中指定的编码str被使用。

如果文档中包含无效的XML字符或不能在给定的编码进行编码的字符,结果和行为是不确定的。

这个函数中引入了Qt 4.2中。

QDomNode.setNodeValue (self, QString)

设置节点的值v

See also nodeValue( ) 。

QDomNode.setPrefix (self, QString pre)

如果该节点有一个命名空间前缀,这个功能改变了节点的命名空间前缀pre。否则,这个函数不执行任何操作。

类型的唯一节点ElementNode or AttributeNode可以有命名空间。命名空间前缀必须要在创建时指定的,它是不可能添加一个命名空间前缀之后。

QDomDocument.createElementNS( )QDomDocument.createAttributeNS( )

See also prefix( )localName()和namespaceURI( ) 。

QDomAttr QDomNode.toAttr (self)

将一个QDomNodeQDomAttr。如果节点不是一个属性,返回的对象将是null

See also isAttr( ) 。

QDomCDATASection QDomNode.toCDATASection (self)

将一个QDomNodeQDomCDATASection。如果该节点不是一个CDATA节,返回的对象将是null

See also isCDATASection( ) 。

QDomCharacterData QDomNode.toCharacterData (self)

将一个QDomNodeQDomCharacterData。如果该节点不是一个字符数据节点返回的对象将是null

See also isCharacterData( ) 。

QDomComment QDomNode.toComment (self)

将一个QDomNodeQDomComment。如果该节点是不是注释返回的对象将是null

See also isComment( ) 。

QDomDocument QDomNode.toDocument (self)

将一个QDomNodeQDomDocument。如果该节点不是文档返回的对象将是null

See also isDocument( ) 。

QDomDocumentFragment QDomNode.toDocumentFragment (self)

将一个QDomNodeQDomDocumentFragment。如果该节点不是一个文档片段返回的对象将是null

See also isDocumentFragment( ) 。

QDomDocumentType QDomNode.toDocumentType (self)

将一个QDomNodeQDomDocumentType。如果该节点不是文档类型返回的对象将是null

See also isDocumentType( ) 。

QDomElement QDomNode.toElement (self)

将一个QDomNodeQDomElement。如果节点不是元素返回的对象将是null

See also isElement( ) 。

QDomEntity QDomNode.toEntity (self)

将一个QDomNodeQDomEntity。如果节点不是一个实体返回的对象将是null

See also isEntity( ) 。

QDomEntityReference QDomNode.toEntityReference (self)

将一个QDomNodeQDomEntityReference。如果节点不是一个实体引用,返回的对象将是null

See also isEntityReference( ) 。

QDomNotation QDomNode.toNotation (self)

将一个QDomNodeQDomNotation。如果该节点不是一个符号返回的对象将是null

See also isNotation( ) 。

QDomProcessingInstruction QDomNode.toProcessingInstruction (self)

将一个QDomNodeQDomProcessingInstruction。如果节点不是处理指令返回的对象将是null

See also isProcessingInstruction( ) 。

QDomText QDomNode.toText (self)

将一个QDomNodeQDomText。如果该节点不是文本,返回的对象将是null

See also isText( ) 。

bool QDomNode.__eq__ (self, QDomNode)

bool QDomNode.__ne__ (self, QDomNode)




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