Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QDomNode类是在DOM树中所有节点的基类。More...
通过继承QDomAttr,QDomCharacterData,QDomDocument,QDomDocumentFragment,QDomDocumentType,QDomElement,QDomEntity,QDomEntityReference,QDomNotation和QDomProcessingInstruction。
该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( ) 。
QDomElement和QDomAttr节点可以有哪些可以检索与命名空间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 1和Level 2 Core。对于更一般介绍的DOM实现的见QDomDocument文档。
此枚举指定如何QDomNode.save()确定序列化时使用何种编码。
Constant | Value | Description |
---|---|---|
QDomNode.EncodingFromDocument | 1 | 该编码是从文件中取出。 |
QDomNode.EncodingFromTextStream | 2 | 该编码是从取出QTextStream。 |
另见的过载save( )函数,它接受一个EncodingPolicy 。
这个枚举被引入或修改的Qt 4.3 。
这个枚举变量定义了节点的类型:
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 |
构造一个null节点。
构造的副本n。
副本的数据是共享的(浅拷贝) :修改一个节点也将改变其他。如果你想使一个深拷贝,使用cloneNode( ) 。
追加可newChild作为节点的最后一个子。
If newChild是另一个节点的子节点,它被重设父到该节点。如果newChild是这个节点的子节点,然后其在儿童中的列表中的位置被改变。
If newChild是QDomDocumentFragment,然后该片段的孩子从片段取出并追加。
If newChild是QDomElement与该节点是QDomDocument已经有一个元素节点作为一个孩子,newChild不添加作为一个孩子,一个空节点返回。
返回一个新的参考newChild成功或null node失败。
一个空节点(创建,例如,使用默认构造函数)在调用该函数不执行任何操作,并返回一个null node。
DOM规范不允许插入属性节点,但由于历史的原因, QDom接受他们无论如何。
See also insertBefore( )insertAfter( )replaceChild()和removeChild( ) 。
将返回所有属性的命名节点图。仅提供了属性QDomElement秒。
变更的属性的映射也将改变这个属性QDomNode。
将返回所有直接子节点的列表。
大多数情况下你都会调用这个函数的QDomElement对象。
例如,如果XML文件看起来像这样:
<body> <h1>Heading</h1> <p>Hello <b>you</b></p> </body>
那么对于“身体”元素的子节点列表将包含由\u003ch1\u003e标记,并由\u003cp\u003e标籤创建的节点创建的节点。
在列表中的节点不会被复制,所以改变列表中的节点也将改变这个节点的子节点。
See also firstChild()和lastChild( ) 。
转换节点,进入一个空节点,如果它不是一个空节点之前,它的类型和内容将被删除。
See also isNull( ) 。
创建的一个深(不浅)副本QDomNode。
If deep是真的,那么克隆完成递归这意味着所有节点的子节点是深复制了。如果deep是假的只有节点本身被复制,并且复制将没有子节点。
对于由创建节点QDomDocument.setContent( ) ,这个函数返回的节点被解析的XML文档中的列数。否则,返回-1 。
这个函数是Qt 4.1中引入。
See also lineNumber()和QDomDocument.setContent( ) 。
返回节点的第一个孩子。如果不存在子节点时,一null node返回。更改返回的节点也将改变在文档树中的节点。
See also lastChild()和childNodes( ) 。
返回与标记名称的第一个子元素tagName如果标记名非空,否则返回第一个子元素。返回如果没有这样的孩子存在一个空元素。
See also lastChildElement( )previousSiblingElement()和nextSiblingElement( ) 。
返回True如果节点有属性,否则返回False 。
See also attributes( ) 。
返回True如果节点有一个或更多的孩子,否则返回False 。
插入节点newChild子节点之后refChild。refChild必须是此节点的直接子。如果refChild is null然后newChild被追加为这个节点的最后一个子节点。
If newChild是另一个节点的子节点,它被重设父到该节点。如果newChild是这个节点的子节点,然后其在儿童中的列表中的位置被改变。
If newChild是QDomDocumentFragment,然后该片段的孩子从片段除去后插入refChild。
返回一个新的参考newChild成功或null node失败。
DOM规范不允许插入属性节点,但由于历史的原因QDom接受他们不过。
See also insertBefore( )replaceChild( )removeChild()和appendChild( ) 。
插入节点newChild该子节点之前refChild。refChild必须是此节点的直接子。如果refChild is null然后newChild插入为节点的第一个孩子。
If newChild是另一个节点的子节点,它被重设父到该节点。如果newChild是这个节点的子节点,然后其在儿童中的列表中的位置被改变。
If newChild是QDomDocumentFragment,然后该片段的孩子从片段取出并插入前refChild。
返回一个新的参考newChild成功或null node失败。
DOM规范不允许插入属性节点,但由于历史的原因QDom接受他们不过。
See also insertAfter( )replaceChild( )removeChild()和appendChild( ) 。
返回True如果该节点是一个属性,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomAttribute ,你可以得到QDomAttribute与toAttribute ( ) 。
See also toAttr( ) 。
返回True如果该节点是一个CDATA部分,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomCDATASection,你可以得到QDomCDATASection同toCDATASection( ) 。
See also toCDATASection( ) 。
返回True如果该节点是一个字符数据节点,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomCharacterData,你可以得到QDomCharacterData同toCharacterData( ) 。
See also toCharacterData( ) 。
返回True如果该节点是注释,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomComment,你可以得到QDomComment同toComment( ) 。
See also toComment( ) 。
返回True如果该节点是一个文件,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomDocument,你可以得到QDomDocument同toDocument( ) 。
See also toDocument( ) 。
返回True如果该节点是文档片段,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomDocumentFragment,你可以得到QDomDocumentFragment同toDocumentFragment( ) 。
See also toDocumentFragment( ) 。
返回True如果该节点是一个文档类型,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomDocumentType,你可以得到QDomDocumentType同toDocumentType( ) 。
See also toDocumentType( ) 。
返回True如果该节点是一个元素,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomElement,你可以得到QDomElement同toElement( ) 。
See also toElement( ) 。
返回True如果该节点是一个实体,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomEntity,你可以得到QDomEntity同toEntity( ) 。
See also toEntity( ) 。
返回True如果该节点是一个实体引用,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomEntityReference,你可以得到QDomEntityReference同toEntityReference( ) 。
See also toEntityReference( ) 。
返回True如果该节点是一个符号,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomNotation,你可以得到QDomNotation同toNotation( ) 。
See also toNotation( ) 。
如果此节点为空,则返回True (即,如果它没有类型或内容),否则返回False 。
返回True如果该节点是一个处理指令,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomProcessingInstruction,你可以得到QProcessingInstruction与toProcessingInstruction( ) 。
See also toProcessingInstruction( ) 。
DOM实现是否实现该功能,则返回Truefeature而这个功能是支持在版本这个节点version否则返回False 。
See also QDomImplementation.hasFeature( ) 。
返回True如果该节点是一个文本节点,否则返回False 。
如果这个函数返回True ,这并不意味着该对象是一个QDomText,你可以得到QDomText同toText( ) 。
See also toText( ) 。
返回节点的最后一个子。如果不存在子节点时,一null node返回。更改返回的节点也将改变在文档树中的节点。
See also firstChild()和childNodes( ) 。
返回最后一个子元素与标籤名tagName如果标记名非空,否则返回最后一个子元素。返回如果没有这样的孩子存在一个空元素。
See also firstChildElement( )previousSiblingElement()和nextSiblingElement( ) 。
对于由创建节点QDomDocument.setContent( ) ,这个函数返回的节点被解析的XML文档中的行号。否则,返回-1 。
这个函数是Qt 4.1中引入。
See also columnNumber()和QDomDocument.setContent( ) 。
如果节点使用命名空间,这个函数返回节点的本地名称,否则返回一个空字符串。
类型的唯一节点ElementNode or AttributeNode可以有命名空间。命名空间必须被指定在创建时,它是不可能事后添加的命名空间。
QDomDocument.createAttributeNS( )
See also prefix( )namespaceURI()和QDomDocument.createElementNS( ) 。
返回的第一个直接子节点nodeName( )等于name。
如果没有这样的直接子存在,一null node返回。
See also nodeName( ) 。
返回在文档树中的下一个同级。更改返回的节点也将改变在文档树中的节点。
如果你有这样的XML :
<h1>Heading</h1> <p>The text...</p> <h2>Next heading</h2>
这QDomNode代表\u003cp\u003e标籤, nextSibling ( )将返回一个代表该\u003cH2\u003e标籤的节点。
See also previousSibling( ) 。
返回下一个同级元素与标籤名tagName如果tagName非空,否则返回任何一个同级元素。返回如果没有这样的兄弟姐妹存在一个空元素。
See also firstChildElement( )previousSiblingElement()和lastChildElement( ) 。
返回节点的名称。
这个名字的含义依赖于子类:
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( ) 。
返回节点的类型。
See also toAttr( )toCDATASection( )toDocumentFragment( )toDocument( )toDocumentType( )toElement( )toEntityReference( )toText( )toEntity( )toNotation( )toProcessingInstruction( )toCharacterData()和toComment( ) 。
返回节点的值。
该值的含义依赖于子类:
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( ) 。
调用正常化( )的元素及其所有子转换成标准格式。这意味着相邻的QDomText对象将被合并成一个单一的文本对象(QDomCDATASection节点未合并) 。
返回此节点所属的文档。
返回父节点。如果该节点没有父级,则返回一个空节点(即该节点isNull( )返回True ) 。
返回节点或空字符串的命名空间前缀,如果该节点没有命名空间前缀。
类型的唯一节点ElementNode or AttributeNode可以有命名空间。命名空间前缀必须在创建时指定。如果一个节点是用命名空间前缀创建的,则可以在以后改变它setPrefix( ) 。
如果您创建一个元素或属性QDomDocument.createElement()或QDomDocument.createAttribute( ) ,前缀将是一个空字符串。如果你使用QDomDocument.createElementNS()或QDomDocument.createAttributeNS()代替,前缀不会是一个空字符串,但它可能是一个空字符串,如果该名称没有前缀。
QDomDocument.createElementNS( )QDomDocument.createAttributeNS( )
See also setPrefix( )localName()和namespaceURI( ) 。
返回在文档树中的前一个同级。更改返回的节点也将改变在文档树中的节点。
例如,如果你有这样的XML :
<h1>Heading</h1> <p>The text...</p> <h2>Next heading</h2>
这QDomNode代表\u003cp\u003e标籤, previousSibling ( )将返回一个代表该\u003ch1\u003e标记的节点。
See also nextSibling( ) 。
返回前sibilng元素与标籤名tagName如果tagName非空,否则返回任何一个同级元素。返回如果没有这样的兄弟姐妹存在一个空元素。
See also firstChildElement( )nextSiblingElement()和lastChildElement( ) 。
移除oldChild从孩子的列表。oldChild必须是此节点的直接子。
返回一个新的参考oldChild成功或null node失败。
See also insertBefore( )insertAfter( )replaceChild()和appendChild( ) 。
替换oldChild同newChild。oldChild必须是此节点的直接子。
If newChild是另一个节点的子节点,它被重设父到该节点。如果newChild是这个节点的子节点,然后其在儿童中的列表中的位置被改变。
If newChild是QDomDocumentFragment,然后oldChild被替换的所有片段的孩子。
返回一个新的参考oldChild成功或null node一个失败。
See also insertBefore( )insertAfter( )removeChild()和appendChild( ) 。
写入节点的XML表示形式及其所有子到流str。此函数使用indent作为空间缩进量的节点。
如果这个节点是一个文档节点,文本流的编码str的编码是由名为“ xml”的治疗处理指令的XML声明,如果这样的人存在,否则默认为UTF - 8设置。 XML声明不是处理指令,但存在由于历史原因,这个行为。如果这个节点不是一个文档节点,文本流的编码。
如果文档中包含无效的XML字符或不能在给定的编码进行编码的字符,结果和行为是不确定的。
If encodingPolicy is QDomNode.EncodingFromDocument这个函数的作用是保存(QTextStream&海峡,诠释缩进) 。
If encodingPolicy is EncodingFromTextStream而这个节点是一个文档节点,这个函数的行为就像保存(QTextStream&海峡,诠释缩进)除了在文本流中指定的编码str被使用。
如果文档中包含无效的XML字符或不能在给定的编码进行编码的字符,结果和行为是不确定的。
这个函数中引入了Qt 4.2中。
设置节点的值v。
See also nodeValue( ) 。
如果该节点有一个命名空间前缀,这个功能改变了节点的命名空间前缀pre。否则,这个函数不执行任何操作。
类型的唯一节点ElementNode or AttributeNode可以有命名空间。命名空间前缀必须要在创建时指定的,它是不可能添加一个命名空间前缀之后。
QDomDocument.createElementNS( )QDomDocument.createAttributeNS( )
See also prefix( )localName()和namespaceURI( ) 。
将一个QDomNode成QDomAttr。如果节点不是一个属性,返回的对象将是null。
See also isAttr( ) 。
将一个QDomNode成QDomCDATASection。如果该节点不是一个CDATA节,返回的对象将是null。
See also isCDATASection( ) 。
将一个QDomNode成QDomCharacterData。如果该节点不是一个字符数据节点返回的对象将是null。
See also isCharacterData( ) 。
将一个QDomNode成QDomComment。如果该节点是不是注释返回的对象将是null。
See also isComment( ) 。
将一个QDomNode成QDomDocument。如果该节点不是文档返回的对象将是null。
See also isDocument( ) 。
将一个QDomNode成QDomDocumentFragment。如果该节点不是一个文档片段返回的对象将是null。
See also isDocumentFragment( ) 。
将一个QDomNode成QDomDocumentType。如果该节点不是文档类型返回的对象将是null。
See also isDocumentType( ) 。
将一个QDomNode成QDomElement。如果节点不是元素返回的对象将是null。
See also isElement( ) 。
将一个QDomNode成QDomEntity。如果节点不是一个实体返回的对象将是null。
See also isEntity( ) 。
将一个QDomNode成QDomEntityReference。如果节点不是一个实体引用,返回的对象将是null。
See also isEntityReference( ) 。
将一个QDomNode成QDomNotation。如果该节点不是一个符号返回的对象将是null。
See also isNotation( ) 。
将一个QDomNode成QDomProcessingInstruction。如果节点不是处理指令返回的对象将是null。
See also isProcessingInstruction( ) 。
将一个QDomNode成QDomText。如果该节点不是文本,返回的对象将是null。
See also isText( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |