QDomNode Class
QDomNode クラスは、DOM ツリー内のすべてのノードの基底クラスです。詳細...
| ヘッダー: | #include <QDomNode> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Xml) target_link_libraries(mytarget PRIVATE Qt6::Xml) |
| qmake: | QT += xml |
| 継承元: |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QDomNode はXML クラスの一部です。
注:このクラスのすべての関数は再入可能です。
パブリック型
| enum | EncodingPolicy { EncodingFromDocument, EncodingFromTextStream } |
| enum | NodeType { ElementNode, AttributeNode, TextNode, CDATASectionNode, EntityReferenceNode, …, CharacterDataNode } |
パブリック関数
| QDomNode() | |
| QDomNode(const QDomNode &node) | |
| ~QDomNode() | |
| QDomNode | appendChild(const QDomNode &newChild) |
| QDomNamedNodeMap | attributes() const |
| QDomNodeList | childNodes() const |
| void | clear() |
| QDomNode | cloneNode(bool deep = true) const |
| int | columnNumber() const |
| QDomNode | firstChild() const |
| QDomElement | firstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const |
| bool | hasAttributes() const |
| bool | hasChildNodes() const |
| QDomNode | insertAfter(const QDomNode &newChild, const QDomNode &refChild) |
| QDomNode | insertBefore(const QDomNode &newChild, const QDomNode &refChild) |
| bool | isAttr() const |
| bool | isCDATASection() const |
| bool | isCharacterData() const |
| bool | isComment() const |
| bool | isDocument() const |
| bool | isDocumentFragment() const |
| bool | isDocumentType() const |
| bool | isElement() const |
| bool | isEntity() const |
| bool | isEntityReference() const |
| bool | isNotation() const |
| bool | isNull() const |
| bool | isProcessingInstruction() const |
| bool | isSupported(const QString &feature, const QString &version) const |
| bool | isText() const |
| QDomNode | lastChild() const |
| QDomElement | lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const |
| int | lineNumber() const |
| QString | localName() const |
| QDomNode | namedItem(const QString &name) const |
| QString | namespaceURI() const |
| QDomNode | nextSibling() const |
| QDomElement | nextSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const |
| QString | nodeName() const |
| QDomNode::NodeType | nodeType() const |
| QString | nodeValue() const |
| void | normalize() |
| QDomDocument | ownerDocument() const |
| QDomNode | parentNode() const |
| QString | prefix() const |
| QDomNode | previousSibling() const |
| QDomElement | previousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const |
| QDomNode | removeChild(const QDomNode &oldChild) |
| QDomNode | replaceChild(const QDomNode &newChild, const QDomNode &oldChild) |
| void | save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const |
| void | setNodeValue(const QString &value) |
| void | setPrefix(const QString &pre) |
| QDomAttr | toAttr() const |
| QDomCDATASection | toCDATASection() const |
| QDomCharacterData | toCharacterData() const |
| QDomComment | toComment() const |
| QDomDocument | toDocument() const |
| QDomDocumentFragment | toDocumentFragment() const |
| QDomDocumentType | toDocumentType() const |
| QDomElement | toElement() const |
| QDomEntity | toEntity() const |
| QDomEntityReference | toEntityReference() const |
| QDomNotation | toNotation() const |
| QDomProcessingInstruction | toProcessingInstruction() const |
| QDomText | toText() const |
| bool | operator!=(const QDomNode &other) const |
| QDomNode & | operator=(const QDomNode &other) |
| bool | operator==(const QDomNode &other) const |
関連する非メンバー
| QTextStream & | operator<<(QTextStream &str, const QDomNode &node) |
詳細な説明
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クラスのコピーは、明示的な共有によってデータを共有します。つまり、1つのノードを変更すると、すべてのコピーが変更されます。これは、firstChild() など、QDomNodeを返す関数と組み合わせて使用する場合に特に有用です。cloneNode() を使用すると、ノードの独立した(深部)コピーを作成できます。
QDomNodeは、nullptr と同様にnullになることがあります。nullノードのコピーを作成すると、別のnullノードが生成されます。nullノードを変更することはできませんが、別の(nullではない可能性のある)ノードを割り当てることは可能です。 この場合、nullノードのコピーはnullのままとなります。QDomNodeがnullであるかどうかは、isNull()を呼び出すことで確認できます。QDomNode(またはその派生クラス)の空のコンストラクタは、nullノードを作成します。
ノードの挿入には、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() で設定できます。
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();
}Document Object Model の詳細については、Level 1およびLevel 2 Core を参照してください。DOM 実装に関するより一般的な概要については、QDomDocument のドキュメントを参照してください。
メンバ型のドキュメント
enum QDomNode::EncodingPolicy
この列挙型は、QDomNode::save() がシリアライズ時に使用するエンコーディングをどのように決定するかを指定します。
| 定数 | 値 | 説明 |
|---|---|---|
QDomNode::EncodingFromDocument | 1 | エンコーディングはドキュメントから取得されます。 |
QDomNode::EncodingFromTextStream | 2 | エンコーディングはQTextStream から取得されます。 |
QDomNode::save()も参照してください 。
enum QDomNode::NodeType
この列挙型は、ノードのタイプを定義します:
| 定数 | 値 | 説明 |
|---|---|---|
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 | QDomNode オブジェクト。つまり、QDomNode のサブクラスではないもの。 |
QDomNode::CharacterDataNode | 22 |
メンバ関数のドキュメント
QDomNode::QDomNode()
null ノードを作成します。
QDomNode::QDomNode(const QDomNode &node)
node のコピーを作成します。
このコピーのデータは共有されています(浅いコピー):一方のノードを変更すると、もう一方も変更されます。深いコピーを作成したい場合は、cloneNode() を使用してください。
[noexcept] QDomNode::~QDomNode()
オブジェクトを破棄し、そのリソースを解放します。
QDomNode QDomNode::appendChild(const QDomNode &newChild)
newChild をノードの最後の子ノードとして追加します。
newChild が別のノードの子である場合、このノードの子として再設定されます。newChild がこのノードの子である場合、子ノードリスト内でのその位置が変更されます。
newChild がQDomDocumentFragment である場合、そのフラグメントの子要素はフラグメントから削除され、末尾に追加されます。
newChild がQDomElement であり、かつこのノードがすでに要素ノードを子として持つQDomDocument である場合、newChild は子として追加されず、null ノードが返されます。
成功した場合はnewChild への新しい参照を返し、失敗した場合はnull node を返します。
null ノード(たとえば、デフォルトのコンストラクタで作成されたもの)に対してこの関数を呼び出しても何も行われず、null node が返されます。
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」要素の子ノードのリストには、<h1>タグによって生成されたノードと、<p>タグによって生成されたノードが含まれます。
リスト内のノードはコピーされないため、リスト内のノードを変更すると、このノードの子ノードも変更されます。
firstChild() およびlastChild()も参照してください 。
void QDomNode::clear()
ノードをヌルノードに変換します。以前にヌルノードでなかった場合、その型と内容は削除されます。
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 node が返されます。返されたノードを変更すると、ドキュメントツリー内のノードも変更されます。
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
ノードに子ノードが1つ以上ある場合はtrue を返し、そうでない場合はfalse を返します。
QDomNode QDomNode::insertAfter(const QDomNode &newChild, const QDomNode &refChild)
ノード `newChild ` を、子ノード `refChild` の後に挿入します。`refChild ` は、このノードの直接の子でなければなりません。refChild が `null ` である場合、newChild はこのノードの最後の子として追加されます。
newChild が別のノードの子である場合、このノードの子として再設定されます。newChild がこのノードの子である場合、子ノードのリスト内でのその位置が変更されます。
newChild がQDomDocumentFragment である場合、そのフラグメントの子要素はフラグメントから削除され、refChild の後に挿入されます。
成功した場合はnewChild への新しい参照を返し、失敗した場合はnull node を返します。
DOM仕様では属性ノードの挿入は許可されていませんが、歴史的な理由により、QDomではそれを受け入れています。
insertBefore()、replaceChild()、removeChild()、およびappendChild()も参照してください 。
QDomNode QDomNode::insertBefore(const QDomNode &newChild, const QDomNode &refChild)
ノード `newChild ` を、子ノード `refChild` の前に挿入します。`refChild ` は、このノードの直接の子ノードでなければなりません。`refChild ` が `null ` である場合、`newChild ` がそのノードの最初の子ノードとして挿入されます。
newChild が別のノードの子である場合、このノードを親として再設定されます。newChild がこのノードの子である場合、子ノードリスト内でのその位置が変更されます。
newChild がQDomDocumentFragment である場合、そのフラグメントの子要素はフラグメントから削除され、refChild の前に挿入されます。
成功した場合はnewChild への新しい参照を返し、失敗した場合はnull node を返します。
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` であることを意味するわけではありません。`QDomCDATASection ` は `toCDATASection()` を使用して取得できます。
toCDATASection()も参照してください 。
bool QDomNode::isCharacterData() const
ノードが文字データノードである場合は `true ` を返し、それ以外の場合は `false` を返します。
この関数が `true` を返したとしても、そのオブジェクトが `QDomCharacterData` であることを意味するわけではありません。`QDomCharacterData ` は `toCharacterData()` で取得できます。
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` であることを意味するわけではありません。`QDomDocumentFragment ` は `toDocumentFragment()` を使用して取得できます。
toDocumentFragment()も参照してください 。
bool QDomNode::isDocumentType() const
ノードがドキュメント型である場合はtrue を返し、そうでない場合はfalseを返します。
この関数が `true` を返した場合でも、そのオブジェクトが `QDomDocumentType` であることを意味するわけではありません。`QDomDocumentType ` は `toDocumentType()` を使用して取得できます。
toDocumentType()も参照してください 。
bool QDomNode::isElement() const
ノードが要素である場合は `true ` を返し、そうでない場合は `false` を返します。
この関数が `true` を返したとしても、そのオブジェクトが `QDomElement` であることを意味するわけではありません。`QDomElement ` は `toElement()` を使用して取得できます。
toElement()も参照してください 。
bool QDomNode::isEntity() const
ノードがエンティティである場合は `true ` を返し、そうでない場合は `false` を返します。
この関数が `true` を返しても、そのオブジェクトが `QDomEntity` であることを意味するわけではありません。`QDomEntity ` は `toEntity()` を使用して取得できます。
toEntity()も参照してください 。
bool QDomNode::isEntityReference() const
ノードがエンティティ参照である場合は `true ` を返し、そうでない場合は `false` を返します。
この関数が `true` を返したとしても、そのオブジェクトが `QDomEntityReference` であることを意味するわけではありません。`QDomEntityReference ` は `toEntityReference()` を使用して取得できます。
toEntityReference()も参照してください 。
bool QDomNode::isNotation() const
ノードがnotationである場合はtrue を返し、そうでない場合はfalse を返します。
この関数が `true` を返しても、そのオブジェクトが `QDomNotation` であることを意味するわけではありません。`toNotation()` を使用することで、`QDomNotation ` を取得できます。
toNotation()も参照してください 。
bool QDomNode::isNull() const
このノードがnullの場合(つまり、型や内容がない場合)、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` であることを意味するわけではありません。`QDomText ` は `toText()` を使用して取得できます。
toText()も参照してください 。
QDomNode QDomNode::lastChild() const
ノードの最後の子ノードを返します。子ノードがない場合は、null node が返されます。返されたノードを変更すると、ドキュメントツリー内のノードも変更されます。
firstChild() およびchildNodes()も参照してください 。
QDomElement QDomNode::lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
タグ名 `tagName ` および名前空間 URI `namespaceURI` を持つ最後の子要素を返します。`tagName ` が空の場合、`namespaceURI` を持つ最後の子要素を返し、`namespaceURI ` が空の場合、`tagName` を持つ最後の子要素を返します。両方のパラメータが空の場合、最後の子要素を返します。該当する子要素が存在しない場合は、null 要素を返します。
firstChildElement()、previousSiblingElement()、およびnextSiblingElement()も参照してください 。
int QDomNode::lineNumber() const
QDomDocument::setContent() によって作成されたノードの場合、この関数は、そのノードが解析された XML ドキュメント内の行番号を返します。それ以外の場合は -1 を返します。
columnNumber() およびQDomDocument::setContent()も参照してください 。
QString QDomNode::localName() const
ノードが名前空間を使用している場合、この関数はそのノードのローカル名を返します。そうでない場合は、空の文字列を返します。
ElementNode またはAttributeNode 型のノードのみが名前空間を持つことができます。名前空間は作成時に指定されている必要があり、後から追加することはできません。
prefix()、namespaceURI()、QDomDocument::createElementNS()、およびQDomDocument::createAttributeNS()も参照してください 。
QDomNode QDomNode::namedItem(const QString &name) const
nodeName() の値がname となる最初の子ノードを返します。
そのような直接の子ノードが存在しない場合は、null node が返されます。
nodeName()も参照してください 。
QString QDomNode::namespaceURI() const
このノードのネームスペース URI を返します。ノードにネームスペース URI がない場合は、空の文字列を返します。
ElementNode またはAttributeNode のタイプのノードのみが名前空間を持つことができます。名前空間 URI は作成時に指定する必要があり、後から変更することはできません。
prefix()、localName()、QDomDocument::createElementNS()、およびQDomDocument::createAttributeNS()も参照してください 。
QDomNode QDomNode::nextSibling() const
ドキュメントツリー内の次の兄弟ノードを返します。返されたノードを変更すると、ドキュメントツリー内のノードも変更されます。
次のようなXMLがある場合:
<h1>Heading</h1>
<p>The text...</p>
<h2>Next heading</h2>そして、QDomNode が <p> タグを表している場合、nextSibling() は <h2> タグを表すノードを返します。
previousSibling()も参照してください 。
QDomElement QDomNode::nextSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
タグ名tagName および名前空間URInamespaceURI を持つ、次の兄弟要素を返します。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 | 属性の値 |
| QDomCDATASection | CDATAセクションの内容 |
| QDomComment | コメント |
| QDomProcessingInstruction | 処理命令のデータ |
| QDomText | テキスト |
その他のすべてのサブクラスはノード値を持たず、空の文字列を返します。
setNodeValue() およびnodeName()も参照してください 。
void QDomNode::normalize()
要素に対してnormalize()を呼び出すと、そのすべての子要素が標準形式に変換されます。つまり、隣接するQDomText オブジェクトは1つのテキストオブジェクトに統合されます(QDomCDATASection ノードは統合されません)。
QDomDocument QDomNode::ownerDocument() const
このノードが属するドキュメントを返します。
QDomNode QDomNode::parentNode() const
親ノードを返します。このノードに親がない場合は、nullノードが返されます(つまり、isNull() の呼び出しで `true` が返されるノードです)。
QString QDomNode::prefix() const
ノードのネームスペースプレフィックスを返します。ノードにネームスペースプレフィックスがない場合は、空の文字列を返します。
ElementNode またはAttributeNode 型のノードのみが名前空間を持つことができます。名前空間プレフィックスは作成時に指定する必要があります。ノードが名前空間プレフィックス付きで作成された場合、後で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 ` および名前空間 URI `namespaceURI` を持つ直前の兄弟要素を返します。tagName が空の場合、`namespaceURI` を持つ直前の兄弟要素を返し、namespaceURI が空の場合、`tagName` を持つ直前の兄弟要素を返します。両方のパラメータが空の場合、直前の兄弟要素を返します。そのような兄弟要素が存在しない場合は、null 要素を返します。
firstChildElement()、nextSiblingElement()、およびlastChildElement()も参照してください 。
QDomNode QDomNode::removeChild(const QDomNode &oldChild)
oldChild を子ノードのリストから削除します。oldChild は、このノードの直接の子ノードでなければなりません。
成功した場合はoldChild への新しい参照を返し、失敗した場合はnull node を返します。
insertBefore()、insertAfter()、replaceChild()、およびappendChild()も参照してください 。
QDomNode QDomNode::replaceChild(const QDomNode &newChild, const QDomNode &oldChild)
oldChild をnewChild に置き換えます。oldChild は、このノードの直接の子ノードでなければなりません。
newChild が別のノードの子である場合、このノードを親として再設定します。newChild がこのノードの子である場合、子ノードのリスト内でのその位置が変更されます。
newChild がQDomDocumentFragment である場合、oldChild は、そのフラグメントの子ノードすべてに置き換えられます。
成功した場合は `oldChild ` への新しい参照を返し、失敗した場合は `null node ` を返します。
insertBefore()、insertAfter()、removeChild()、およびappendChild()も参照してください 。
void QDomNode::save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const
ノードとそのすべての子ノードのXML表現を、ストリームstream に書き込みます。この関数は、ノードのインデント量としてindent を使用します。
ドキュメントに無効なXML文字、または指定されたエンコーディングでエンコードできない文字が含まれている場合、結果および動作は未定義となります。
encodingPolicy がQDomNode::EncodingFromDocument であり、このノードがドキュメントノードである場合、テキストストリームstream のエンコーディングは、名前 "xml" の処理命令が存在すればそれを XML 宣言として扱って設定され、存在しない場合はデフォルトで UTF-8 となります。XML 宣言は処理命令ではありませんが、この挙動は歴史的な理由から存在しています。 このノードがドキュメントノードでない場合、テキストストリームのエンコーディングが使用されます。
encodingPolicy がEncodingFromTextStream であり、かつこのノードがドキュメントノードである場合、この関数は save(QTextStream &str, int indent) と同様に動作しますが、テキストストリームstream で指定されたエンコーディングが使用される点が異なります。
ドキュメントに無効な XML 文字、または指定されたエンコーディングでエンコードできない文字が含まれている場合、結果および挙動は未定義となります。
void QDomNode::setNodeValue(const QString &value)
ノードの値を `value` に設定します。
nodeValue()も参照してください 。
void QDomNode::setPrefix(const QString &pre)
ノードに名前空間プレフィックスが設定されている場合、この関数はそのノードの名前空間プレフィックスをpre に変更します。それ以外の場合は、この関数は何も行いません。
ElementNode またはAttributeNode 型のノードのみが名前空間を持つことができます。名前空間プレフィックスは作成時に指定する必要があります。後から名前空間プレフィックスを追加することはできません。
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 に変換します。ノードがnotationでない場合、返されるオブジェクトはnull となります。
isNotation()も参照してください 。
QDomProcessingInstruction QDomNode::toProcessingInstruction() const
QDomNode をQDomProcessingInstruction に変換します。ノードが処理命令でない場合、返されるオブジェクトはnull となります。
isProcessingInstruction()も参照してください 。
QDomText QDomNode::toText() const
QDomNode をQDomText に変換します。ノードがテキストでない場合、返されるオブジェクトはnull となります。
isText()も参照してください 。
bool QDomNode::operator!=(const QDomNode &other) const
other とこのDOMノードが等しくない場合はtrue を返し、等しい場合はfalse を返します。
QDomNode &QDomNode::operator=(const QDomNode &other)
other のコピーをこのDOMノードに割り当てます。
このコピーのデータは共有されています(浅いコピー):一方のノードを変更すると、もう一方も変更されます。深いコピーを作成したい場合は、cloneNode() を使用してください。
bool QDomNode::operator==(const QDomNode &other) const
other とこの DOM ノードが等しい場合は `true ` を返し、そうでない場合は `false` を返します。
QDomNode のインスタンスは、すべてQDomDocument 内の基盤となるデータ構造への参照として機能します。等価性のチェックでは、2つの参照が同じ基盤となるノードを指しているかどうかが確認されます。例えば:
QDomDocument document;
QDomElement element1 = document.documentElement();
QDomElement element2 = element1;2つのノード(QDomElement はQDomNode のサブクラスです)はどちらもドキュメントのルート要素を参照しており、element1 == element2 はtrueを返します。一方:
QDomElement element3 = document.createElement("MyElement");
QDomElement element4 = document.createElement("MyElement");両方のノードが同じ名前を持つ空の要素であっても、element3 == element4 はfalseを返します。これは、それらが基になるデータ構造内の異なる2つのノードを指しているためです。
関連する非メンバー
QTextStream &operator<<(QTextStream &str, const QDomNode &node)
ノード `node ` およびそのすべての子ノードの XML 表現を、ストリーム `str` に書き込みます。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.