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 のままになります。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() で 1 つのノードにマージできます。
QDomElement ノードには属性があり、 () で取得できます。attributes
QDomElement また、 ノードは、 () で取得できるネームスペースを持つことができます。ローカル名は () で、プレフィックスは () で取得できます。接頭辞は () で設定できます。QDomAttr namespaceURI localName prefix setPrefix
ノードの XML 表現をテキスト・ストリームに書き出すには、save() を使用します。
以下の例は、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(); }
ドキュメント・オブジェクト・モデルの詳細については、レベル1およびレベル2コアを参照してください。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 が偽の場合、ノード自身のみがコピーされ、コピーは子ノードを持ちません。
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 と名前空間 URInamespaceURI を持つ最初の子要素を返します。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)
子ノードrefChild の後にノードnewChild を挿入する。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)
子ノードrefChild の前にノードnewChild を挿入する。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 であることを意味するものではありません。
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 であることを意味しません。QDomComment はtoComment() で取得できます。
toComment()も参照してください 。
bool QDomNode::isDocument() const
ノードがドキュメントであればtrue
を返し、そうでなければfalse
を返す。
この関数がtrue
を返しても、このオブジェクトがQDomDocument であることを意味しません。QDomDocument はtoDocument() で取得できます。
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
ノードが表記法の場合はtrue
を返し、そうでない場合はfalse
を返す。
この関数がtrue
を返しても、このオブジェクトがQDomNotation であることを意味しません。QDomNotation はtoNotation() で取得できます。
toNotation()も参照してください 。
bool QDomNode::isNull() const
このノードがNULLの場合(つまり型も内容もない場合)、true
を返す。そうでない場合は、false
を返す。
bool QDomNode::isProcessingInstruction() const
ノードが処理命令である場合はtrue
を返し、そうでない場合はfalse
を返します。
この関数がtrue
を返しても、このオブジェクトがQDomProcessingInstruction であることを意味するわけではありません。QProcessingInstruction はtoProcessingInstruction() で取得できます。
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 と名前空間 URInamespaceURI を持つ最後の子要素を返します。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 オブジェクトが単一のテキスト・オブジェクトにマージされることを意味します (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 、名前空間 URInamespaceURI 。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 に変換します。 ノードが記法でない場合、返されるオブジェクトは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
は真を返します。一方:
QDomElement element3 = document.createElement("MyElement"); QDomElement element4 = document.createElement("MyElement");
両方のノードが同じ名前を持つ空の要素であっても、element3 == element4
は false を返します。これは、基礎となるデータ構造内の 2 つの異なるノードを参照しているためです。
関連する非メンバー
QTextStream &operator<<(QTextStream &str, const QDomNode &node)
ノードnode とそのすべての子の XML 表現をストリームstr に書き込みます。
© 2025 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.