QDomNode 类

The QDomNode class is the base class for all the nodes in a DOM tree. More...

Header #include <QDomNode>
CMakefind_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmakeQT += xml
Inherited By
10 种类型

QDomAttr, QDomCharacterData, QDomDocument, QDomDocumentFragment, QDomDocumentType, QDomElement, QDomEntity, QDomEntityReference, QDomNotation, 和 QDomProcessingInstruction

注意: 本类中所有函数都是 可重入的

公共类型

枚举EncodingPolicy { EncodingFromDocument, EncodingFromTextStream }
枚举NodeType { ElementNode, AttributeNode, TextNode, CDATASectionNode, EntityReferenceNode, …, CharacterDataNode }

公共函数

QDomNode()
QDomNode(const QDomNode &n)
~QDomNode()
QDomNodeappendChild(const QDomNode &newChild)
QDomNamedNodeMapattributes() const
QDomNodeListchildNodes() const
voidclear()
QDomNodecloneNode(bool deep = true) const
intcolumnNumber() const
QDomNodefirstChild() const
QDomElementfirstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
boolhasAttributes() const
boolhasChildNodes() const
QDomNodeinsertAfter(const QDomNode &newChild, const QDomNode &refChild)
QDomNodeinsertBefore(const QDomNode &newChild, const QDomNode &refChild)
boolisAttr() const
boolisCDATASection() const
boolisCharacterData() const
boolisComment() const
boolisDocument() const
boolisDocumentFragment() const
boolisDocumentType() const
boolisElement() const
boolisEntity() const
boolisEntityReference() const
boolisNotation() const
boolisNull() const
boolisProcessingInstruction() const
boolisSupported(const QString &feature, const QString &version) const
boolisText() const
QDomNodelastChild() const
QDomElementlastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
intlineNumber() const
QStringlocalName() const
QDomNodenamedItem(const QString &name) const
QStringnamespaceURI() const
QDomNodenextSibling() const
QDomElementnextSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
QStringnodeName() const
QDomNode::NodeTypenodeType() const
QStringnodeValue() const
voidnormalize()
QDomDocumentownerDocument() const
QDomNodeparentNode() const
QStringprefix() const
QDomNodepreviousSibling() const
QDomElementpreviousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
QDomNoderemoveChild(const QDomNode &oldChild)
QDomNodereplaceChild(const QDomNode &newChild, const QDomNode &oldChild)
voidsave(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const
voidsetNodeValue(const QString &v)
voidsetPrefix(const QString &pre)
QDomAttrtoAttr() const
QDomCDATASectiontoCDATASection() const
QDomCharacterDatatoCharacterData() const
QDomCommenttoComment() const
QDomDocumenttoDocument() const
QDomDocumentFragmenttoDocumentFragment() const
QDomDocumentTypetoDocumentType() const
QDomElementtoElement() const
QDomEntitytoEntity() const
QDomEntityReferencetoEntityReference() const
QDomNotationtoNotation() const
QDomProcessingInstructiontoProcessingInstruction() const
QDomTexttoText() const
booloperator!=(const QDomNode &n) const
QDomNode &operator=(const QDomNode &n)
booloperator==(const QDomNode &n) const
QTextStream &operator<<(QTextStream &str, const QDomNode &node)

详细描述

DOM中许多函数返回QDomNode。

您可以使用 isAttr(),isCDATASection(),isDocumentFragment(),isDocument(),isDocumentType(),isElement(),isEntityReference(),isText(),isEntity(),isNotation(),isProcessingInstruction(),isCharacterData() 和 isComment() 来确定一个节点的类型。

可以使用 toAttr(),toCDATASection(),toDocumentFragment(),toDocument(),toDocumentType(),toElement(),toEntityReference(),toText(),toEntity(),toNotation(),toProcessingInstruction(),toCharacterData() 或 toComment() 将 QDomNode 转换为其子类之一。您可以通过 clear() 将节点转换为 null 节点。

Copies of the QDomNode class share their data using explicit sharing. This means that modifying one node will change all copies. This is especially useful in combination with functions which return a QDomNode, e.g. firstChild(). You can make an independent (deep) copy of the node with cloneNode().

A QDomNode can be null, much like nullptr. Creating a copy of a null node results in another null node. It is not possible to modify a null node, but it is possible to assign another, possibly non-null node to it. In this case, the copy of the null node will remain null. You can check if a QDomNode is null by calling isNull(). The empty constructor of a QDomNode (or any of the derived classes) creates a null node.

Nodes are inserted with insertBefore(), insertAfter() or appendChild(). You can replace one node with another using replaceChild() and remove a node with removeChild().

To traverse nodes use firstChild() to get a node's first child (if any), and nextSibling() to traverse. QDomNode also provides lastChild(), previousSibling() and parentNode(). To find the first child node with a particular node name use namedItem().

To find out if a node has children use hasChildNodes() and to get a list of all of a node's children use childNodes().

The node's name and value (the meaning of which varies depending on its type) is returned by nodeName() and nodeValue() respectively. The node's type is returned by nodeType(). The node's value can be set with setNodeValue().

The document to which the node belongs is returned by ownerDocument().

Adjacent QDomText nodes can be merged into a single node with normalize().

QDomElement 节点具有可以用 attributes() 获取的属性。

QDomElement 和 QDomAttr 节点可以具有命名空间,可以用 namespaceURI().() 获取。它们的局部名称可以通过 localName()() 获取,它们的前缀通过 prefix() 获取。前缀可以通过 setPrefix() 设置。

您可以使用 save().() 将节点的 XML 表示写入到文本流中。

以下示例在 XML 文档中查找第一个元素,并打印所有直接子元素的名称。

QDomDocument d;
QString someXML;

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

有关文档对象模型 (DOM) 的更多信息,请参阅 Level 1Level 2 Core。有关 DOM 实现的更一般性介绍,请参阅 QDomDocument 文档。

成员类型文档

enum QDomNode::EncodingPolicy

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

常量描述
QDomNode::EncodingFromDocument1编码从文档中获取。
QDomNode::EncodingFromTextStream2编码从 QTextStream 中获取。

另请参阅 QDomNode::save()。

enum QDomNode::NodeType

此枚举定义节点类型

常量描述
QDomNode::ElementNode1 
QDomNode::AttributeNode2 
QDomNode::TextNode3 
QDomNode::CDATASectionNode4 
QDomNode::EntityReferenceNode5 
QDomNode::EntityNode6 
QDomNode::ProcessingInstructionNode7 
QDomNode::CommentNode8 
QDomNode::DocumentNode9 
QDomNode::DocumentTypeNode10 
QDomNode::DocumentFragmentNode11 
QDomNode::NotationNode12 
QDomNode::BaseNode21一个 QDomNode 对象,即不是 QDomNode 的子类。
QDomNode::CharacterDataNode22 

成员函数文档

QDomNode::QDomNode()

构建一个 null 节点。

QDomNode::QDomNode(const QDomNode &n)

构建一个 n 的副本。

副本的数据是共享的(浅复制):修改一个节点也会改变另一个节点。如果您想创建一个深度副本,请使用 cloneNode()()。

[noexcept] QDomNode::~QDomNode()

销毁对象并释放其资源。

QDomNode QDomNode::appendChild(const QDomNode &newChild)

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

如果 newChild 是另一个节点的子节点,则将其重叠到此节点。如果 newChild 是此节点的子节点,则在其子节点列表中的位置发生更改。

如果 newChild 是 QDomDocumentFragment,则移除片段的子节点并将它们附加。

如果 newChild 是 QDomElement 并且此节点是已经有一个元素子节点作为子节点的 QDomDocument,则不会将 newChild 添加为子节点,并返回一个 null 节点。

在成功的情况下返回 newChild 的新引用,或者在失败的情况下返回 null 节点

在 null 节点上调用此函数(例如,使用默认构造函数创建)不会执行任何操作,并且返回 null 节点

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

另请参阅insertBefore()、insertAfter()、replaceChild() 和 removeChild

QDomNamedNodeMap QDomNode::attributes() const

返回所有属性的名字节点映射。属性仅适用于 QDomElement

更改映射中的属性也会更改此 QDomNode 的属性。

QDomNodeList QDomNode::childNodes() const

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

大多数情况下,您将在此 QDomElement 对象上调用此函数。

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

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

那么 "body" 元素的子节点列表将包含由 &lt;h1&gt; 标签创建的节点和由 &lt;p&gt; 标签创建的节点。

列表中的节点不会被复制;因此更改列表中的节点也会更改此节点的子节点。

另请参阅firstChild() 和 lastChild

void QDomNode::clear()

将节点转换为 null 节点;如果它之前不是 null 节点,则其类型和内容被删除。

另请参阅isNull

QDomNode QDomNode::cloneNode(bool deep = true) const

创建 QDomNode 的深度(非浅层)副本。

如果 deep 为 true,则执行递归复制,这意味着还会深度复制所有子节点。如果 deep 为 false,则仅复制节点本身,并且副本将没有任何子节点。

int QDomNode::columnNumber() const

对于由 QDomDocument::setContent 创建的节点,此函数返回节点被解析的 XML 文档中的列号。否则返回 -1。

另请参阅lineNumber() 和 QDomDocument::setContent

QDomNode QDomNode::firstChild() const

返回节点的第一个子节点。如果没有子节点,则返回 null 节点。更改返回的节点也将更改文档树中的节点。

另请参阅lastChild() 和 childNodes

QDomElement QDomNode::firstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

返回第一个具有标签名 tagName 和命名空间URI namespaceURI 的子元素。如果 tagName 为空,则返回具有 namespaceURI 的第一个子元素;如果 namespaceURI 为空,则返回具有 tagName 的第一个子元素。如果两个参数都为空,则返回第一个子元素。如果不存在此类子元素,则返回null元素。

另请参阅 lastChildElement(),previousSiblingElement()和nextSiblingElement()。

bool QDomNode::hasAttributes() const

如果节点有属性,则返回 true;否则返回 false

另请参阅 attributes()。

bool QDomNode::hasChildNodes() const

如果节点有一个或多个子节点,则返回 true;否则返回 false

QDomNode QDomNode::insertAfter(const QDomNode &newChild, const QDomNode &refChild)

将节点 newChild 插入到子节点 refChild 之后。 refChild 必须是当前节点的直接子节点。如果 refChildnull,则将 newChild 添加为当前节点最后一个子节点。

如果 newChild 是另一个节点的子节点,则将其重叠到此节点。如果 newChild 是此节点的子节点,则在其子节点列表中的位置发生更改。

如果 newChildQDomDocumentFragment,则将片段的子节点从片段中移除并插入到 refChild 之后。

在成功的情况下返回 newChild 的新引用,或者在失败的情况下返回 null 节点

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

另请参阅 insertBefore(),replaceChild(),removeChild()和appendChild()。

QDomNode QDomNode::insertBefore(const QDomNode &newChild, const QDomNode &refChild)

将节点 newChild 插入到子节点 refChild 之前。 refChild 必须是当前节点的直接子节点。如果 refChildnull,则将 newChild 插入为节点的第一个子节点。

如果 newChild 是另一个节点的子节点,则将其重叠到此节点。如果 newChild 是此节点的子节点,则在其子节点列表中的位置发生更改。

如果 newChildQDomDocumentFragment,则将片段的子节点从片段中移除并插入到 refChild 之前。

在成功的情况下返回 newChild 的新引用,或者在失败的情况下返回 null 节点

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

另请参阅 insertAfter(),replaceChild(),removeChild()和appendChild()。

bool QDomNode::isAttr() const

如果节点是属性节点,则返回 true;否则返回 false

如果此函数返回 true,则不意味着此对象是QDomAttribute;您可以通过toAttribute()获取QDomAttribute。

另请参阅 toAttr()。

bool QDomNode::isCDATASection() const

如果节点是CDATA部分,则返回 true;否则返回false。

如果此函数返回 true,并不表示该对象是一个 QDomCDATASection;您可以使用 toCDATASection() 方法获取 QDomCDATASection

另请参阅toCDATASection

bool QDomNode::isCharacterData() const

如果节点是字符数据节点,则返回 true;否则返回 false

如果此函数返回 true,并不表示该对象是一个 QDomCharacterData;您可以使用 toCharacterData() 方法获取 QDomCharacterData

另请参阅toCharacterData

bool QDomNode::isComment() const

如果节点是注释,则返回 true;否则返回 false

如果此函数返回 true,并不表示该对象是一个 QDomComment;您可以使用 toComment() 方法获取 QDomComment

另请参阅toComment

bool QDomNode::isDocument() const

如果节点是文档,则返回 true;否则返回 false

如果此函数返回 true,并不表示该对象是一个 QDomDocument;您可以使用 toDocument() 方法获取 QDomDocument

另请参阅toDocument

bool QDomNode::isDocumentFragment() const

如果节点是文档片段,则返回 true;否则返回 false

如果此函数返回 true,并不表示该对象是一个 QDomDocumentFragment;您可以使用 toDocumentFragment() 方法获取 QDomDocumentFragment

另请参阅toDocumentFragment

bool QDomNode::isDocumentType() const

如果节点是文档类型,则返回 true;否则返回 false

如果此函数返回 true,并不表示该对象是一个 QDomDocumentType;您可以使用 toDocumentType() 方法获取 QDomDocumentType

另请参阅toDocumentType

bool QDomNode::isElement() const

如果节点是元素,则返回 true;否则返回 false

如果此函数返回 true,并不表示该对象是一个 QDomElement;您可以使用 toElement() 方法获取 QDomElement

另请参阅toElement

bool QDomNode::isEntity() const

如果节点是实体,则返回 true;否则返回 false

如果此函数返回true,则不意味着此对象是一个QDomEntity;您可以使用toEntity()获取QDomEntity

另请参阅toEntity

bool QDomNode::isEntityReference() const

如果节点是实体引用,则返回true;否则返回false。

如果此函数返回true,则不意味着此对象是一个QDomEntityReference;您可以使用toEntityReference()获取QDomEntityReference

另请参阅toEntityReference

bool QDomNode::isNotation() const

如果节点是符号,则返回true;否则返回false

如果此函数返回true,则不意味着此对象是一个QDomNotation;您可以使用toNotation()获取QDomNotation

另请参阅toNotation

bool QDomNode::isNull() const

如果此节点为空(即没有类型或内容),则返回true;否则返回false

bool QDomNode::isProcessingInstruction() const

如果节点是处理指令,则返回true;否则返回false

如果此函数返回true,则不意味着此对象是一个QDomProcessingInstruction;您可以使用toProcessingInstruction()获取QProcessingInstruction。

另请参阅toProcessingInstruction

bool QDomNode::isSupported(const QString &feature, const QString &version) const

如果DOM实现实现了特性feature,并且在此版本version中此节点支持此特性,则返回true;否则返回false

另请参阅QDomImplementation::hasFeature

bool QDomNode::isText() const

如果节点是文本节点,则返回true;否则返回false

如果此函数返回true,则不意味着此对象是一个QDomText;您可以使用toText()获取QDomText

另请参阅toText

QDomNode QDomNode::lastChild() const

返回节点的最后一个子节点。如果没有子节点,则返回一个空节点。更改返回的节点也将更改文档树中的节点。

另请参阅firstChild()和childNodes

QDomElement QDomNode::lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

返回最后一个标签名为tagName且命名空间URI为namespaceURI的子元素。如果tagName为空,则返回具有namespaceURI的最后一个子元素,如果namespaceURI为空,则返回具有tagName的最后一个子元素。如果两个参数都为空,则返回最后一个子元素。如果不存在这样的子元素,返回空元素。

另请参阅firstChildElement(),previousSiblingElement()和nextSiblingElement()。

int QDomNode::lineNumber() const

对于由QDomDocument::setContent()创建的节点,此函数返回解析节点所在的XML文档中的行号。否则,返回-1。

另请参阅columnNumber()和QDomDocument::setContent()。

QString QDomNode::localName() const

如果节点使用命名空间,此函数返回节点的局部名称;否则返回空字符串。

只有类型为ElementNodeAttributeNode的节点才能有命名空间。必须在创建时指定命名空间;之后无法添加命名空间。

另请参阅prefixnamespaceURIQDomDocument::createElementNSQDomDocument::createAttributeNS

QDomNode QDomNode::namedItem(const QString &name) const

返回第一个具有namenodeName()的子节点。

如果不存在这样的直接子节点,返回一个空节点。

另请参阅nodeName()。

QString QDomNode::namespaceURI() const

返回节点的命名空间URI,或者如果节点没有命名空间URI,返回空字符串。

只有类型为ElementNodeAttributeNode的节点才能有命名空间。必须在创建时指定命名空间URI,之后不能更改。

另请参阅prefixlocalNameQDomDocument::createElementNSQDomDocument::createAttributeNS

QDomNode QDomNode::nextSibling() const

返回文档树中的下一个兄弟节点。修改返回的节点也会修改文档树中的节点。

如果您有如下XML

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

并且这个QDomNode表示

标签,nextSibling()将返回表示

标签的节点。

另请参阅previousSibling()。

QDomElement QDomNode::nextSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

返回带有标签名 tagName 和命名空间URI namespaceURI 的下一个同级元素。如果 tagName 为空,则返回带有 namespaceURI 的下一个同级元素;如果 namespaceURI 为空,则返回带有 tagName 的下一个同级子元素。如果两者都为空,则返回下一个同级元素。如果不存在此类同级元素,返回null元素。

另请参阅 firstChildElement(),previousSiblingElement() 和 lastChildElement()。

QString QDomNode::nodeName() const

返回节点名称。

名称的含义取决于子类

名称含义
QDomAttr属性的名称
QDomCDATASection字符串 "#cdata-section"
QDomComment字符串 "#comment"
QDomDocument字符串 "#document"
QDomDocumentFragment字符串 "#document-fragment"
QDomDocumentType文档类型的名称
QDomElement标签名称
QDomEntity实体的名称
QDomEntityReference引用实体的名称
QDomNotation记法的名称
QDomProcessingInstruction处理指令的目标
QDomText字符串 "#text"

注意:此函数处理元素和属性节点名称时,不考虑命名空间的存在。因此,返回的名称可以包含可能存在的任何命名空间前缀。要获取元素或属性的节点名称,请使用 localName();要获取命名空间前缀,请使用 namespaceURI()。

另请参阅 nodeValue()。

QDomNode::NodeType QDomNode::nodeType() const

返回节点的类型。

另请参阅 toAttr(),toCDATASection(),toDocumentFragment(),toDocument(),toDocumentType(),toElement(),toEntityReference(),toText(),toEntity(),toNotation(),toProcessingInstruction(),toCharacterData() 和 toComment()。

QString QDomNode::nodeValue() const

返回节点的值。

值的含义取决于子类

名称含义
QDomAttr属性值
QDomCDATASectionCDATA节区的内容
QDomComment注释
QDomProcessingInstruction处理指令的数据
QDomText文本

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

另请参阅 setNodeValue() 和 nodeName()。

void QDomNode::normalize()

在元素上调用 normalize() 会将其所有子元素转换为标准形式。这意味着相邻的 QDomText 对象将被合并为单个文本对象(《a href="qdomcdatasection.html" translate="no">QDomCDATASection 节点不会被合并)。

QDomDocument QDomNode::ownerDocument() const

返回此节点所属的文档。

QDomNode QDomNode::parentNode() const

返回父节点。如果该节点没有父节点,将返回一个空节点(即isNull()返回true的节点)。

QString QDomNode::prefix() const

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

只有元素节点或属性节点才能有命名空间。在创建时必须指定命名空间前缀。如果节点带有命名空间前缀创建,可以用setPrefix()方法稍后更改它。

使用QDomDocument::createElement()或QDomDocument::createAttribute()创建元素或属性时,前缀将为空字符串。如果使用QDomDocument::createElementNS()或QDomDocument::createAttributeNS(),前缀将不为空字符串;但如果名称没有前缀,它可能是一个空字符串。

另请参阅setPrefix()、localName()、namespaceURI()、QDomDocument::createElementNS()和QDomDocument::createAttributeNS()。

QDomNode QDomNode::previousSibling() const

返回文档树中的前一个兄弟节点。修改返回的节点也会修改文档树中的节点。

例如,如果你有这样的XML

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

并且这个QDomNode表示

<p>

标签,previousSibling()将返回表示

<h1>

的节点。

另请查阅nextSibling()。

QDomElement QDomNode::previousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

返回具有标签名tagName和命名空间URInamespaceURI的前一个兄弟元素。如果tagName为空,则返回具有namespaceURI的前一个兄弟元素,如果namespaceURI为空,则返回具有tagName的前一个兄弟元素。如果两个参数都为空,则返回前一个兄弟元素。如果没有这样的兄弟元素存在,则返回一个空元素。

另请查阅firstChildElement()、nextSiblingElement()和lastChildElement()。

QDomNode QDomNode::removeChild(const QDomNode &oldChild)

从子节点列表中移除oldChild。必须确保oldChild为此节点的直接子节点。

成功时,返回对oldChild的新引用,失败时返回一个null节点

另请参阅 insertBefore(),insertAfter(),replaceChild() 和 appendChild().

QDomNode QDomNode::replaceChild(const QDomNode &newChild, const QDomNode &oldChild)

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

如果 newChild 是另一个节点的子节点,则将其重叠到此节点。如果 newChild 是此节点的子节点,则在其子节点列表中的位置发生更改。

如果newChild是一个 QDomDocumentFragment,则用片段的子节点全部替换oldChild

成功时,返回对oldChild的新引用,失败时返回一个null节点

另请参阅 insertBefore(),insertAfter(),removeChild() 和 appendChild().

void QDomNode::save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const

将节点的XML表示形式及其所有子节点的写出到流stream。此函数将indent用作缩进节点的空格数量。

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

如果encodingPolicyQDomNode::EncodingFromDocument且此节点是文档节点,文本流stream的编码通过将名称为"xml"的处理指令视为XML声明来设置,如果存在,否则默认为UTF-8。XML声明不是处理指令,但这种行为存在出于历史原因。如果此节点不是文档节点,则使用文本流的编码。

如果encodingPolicyEncodingFromTextStream且此节点是文档节点,此函数表现得与 save(QTextStream &str, int indent) 类似,但该文本流stream中指定的编码被使用。

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

void QDomNode::setNodeValue(const QString &v)

将节点的值设置为v

另请参阅 nodeValue()。

void QDomNode::setPrefix(const QString &pre)

如果节点有命名空间前缀,此函数将节点的命名空间前缀更改为pre。否则此函数不执行任何操作。

只有类型为ElementNodeAttributeNode的节点可以有命名空间。命名空间前缀必须在创建时指定;之后无法添加命名空间前缀。

另请参阅 prefix(),localName(),namespaceURI(),QDomDocument::createElementNS() 和 QDomDocument::createAttributeNS().

QDomAttr QDomNode::toAttr() const

QDomNode转换为QDomAttr。如果节点不是属性,则返回的对象将为 null

另请参阅 isAttr().

QDomCDATASection QDomNode::toCDATASection() const

将一个QDomNode转换为QDomCDATASection。如果节点不是CDATA部分,返回的对象将是null

另请参阅 isCDATASection

QDomCharacterData QDomNode::toCharacterData() const

将一个QDomNode转换为QDomCharacterData。如果节点不是字符数据节点,返回的对象将是null

另请参阅 isCharacterData

QDomComment QDomNode::toComment() const

将一个QDomNode转换为QDomComment。如果节点不是注释,返回的对象将是null

另请参阅 isComment

QDomDocument QDomNode::toDocument() const

将一个QDomNode转换为QDomDocument。如果节点不是文档,返回的对象将是null

另请参阅 isDocument

QDomDocumentFragment QDomNode::toDocumentFragment() const

将一个QDomNode转换为QDomDocumentFragment。如果节点不是文档片段,返回的对象将是null

另请参阅 isDocumentFragment

QDomDocumentType QDomNode::toDocumentType() const

将一个QDomNode转换为QDomDocumentType。如果节点不是文档类型,返回的对象将是null

另请参阅 isDocumentType

QDomElement QDomNode::toElement() const

将一个QDomNode转换为QDomElement。如果节点不是元素,返回的对象将是null

另请参阅 isElement

QDomEntity QDomNode::toEntity() const

将一个QDomNode转换为QDomEntity。如果节点不是实体,返回的对象将是null

另请参阅 isEntity

QDomEntityReference QDomNode::toEntityReference() const

将一个QDomNode转换为QDomEntityReference。如果节点不是实体引用,返回的对象将是null

另请参阅 isEntityReference

QDomNotation QDomNode::toNotation() const

将一个 QDomNode 转换为 QDomNotation。如果节点不是标记,则返回的对象将是 null

另请参阅isNotation

QDomProcessingInstruction QDomNode::toProcessingInstruction() const

将一个 QDomNode 转换为 QDomProcessingInstruction。如果节点不是处理指令,则返回的对象将是 null

另请参阅isProcessingInstruction

QDomText QDomNode::toText() const

将一个 QDomNode 转换为 QDomText。如果节点不是文本,则返回的对象将是 null

另请参阅isText

bool QDomNode::operator!=(const QDomNode &n) const

如果 n 和此 DOM 节点不相等,返回 true;否则返回 false

QDomNode &QDomNode::operator=(const QDomNode &n)

n 的副本分配给此 DOM 节点。

副本的数据是共享的(浅复制):修改一个节点也会改变另一个节点。如果您想创建一个深度副本,请使用 cloneNode()()。

bool QDomNode::operator==(const QDomNode &n) const

如果 n 和此 DOM 节点相等,则返回 true;否则返回 false

QDomNode 的任何实例都充当 QDomDocument 下层数据结构的引用。相等性检查会检查两个引用是否指向相同的下基层节点。例如

QDomDocument document;
QDomElement element1 = document.documentElement();
QDomElement element2 = element1;

这两个节点 (QDomElementQDomNode 的子类) 都指向文档的根元素,并且 element1 == element2 将返回 true。另一方面

QDomElement element3 = document.createElement("MyElement");
QDomElement element4 = document.createElement("MyElement");

尽管这两个节点都是带有相同名称的空元素,但 element3 == element4 将返回 false,因为它们指向下层数据结构中的两个不同节点。

相关非成员

QTextStream &operator<<(QTextStream &str, const QDomNode &node)

将节点 node 及其所有子节点的 XML 表示写入到流 str 中。

© 2024 Qt 公司有限公司。本文件中包含的文档贡献的版权属于其各自的所有者。本文件提供的文档是根据 Free Software Foundation 发布的 GNU 自由文档许可版 1.3 的条款许可的。Qt 及其 respective 商标是芬兰和/或全球其他国家的 Qt 公司有限公司的 商标。所有其他商标均为其各自所有者的财产。