QDomNode Class
QDomNode クラスは、DOM ツリー内のすべてのノードの基本クラスです。詳細...
Header: | #include <QDomNode> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Xml) target_link_libraries(mytarget PRIVATE Qt6::Xml) |
qmake: | QT += xml |
Inherited By: |
- 継承メンバを含む全メンバのリスト
- 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 が真の場合、複製は再帰的に行われ、ノードの子もすべてディープコピーされます。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
を返します。
QDomCharacterData toCharacterDataこの関数がtrue
を返しても、このオブジェクトがQDomCharacterData であることを意味するわけではありません。
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
を返します。
QDomElement toElementこの関数がtrue
を返しても、このオブジェクトがQDomElement であることを意味するわけではありません。
toElement()も参照してください 。
bool QDomNode::isEntity() const
ノードがエンティティの場合はtrue
を返し、そうでない場合はfalse
を返します。
QDomEntity toEntityこの関数がtrue
を返しても、このオブジェクトがQDomEntity であることを意味するわけではありません。
toEntity()も参照してください 。
bool QDomNode::isEntityReference() const
ノードが実体参照である場合はtrue
を返し、そうでない場合は false を返します。
QDomEntityReference toEntityReferenceこの関数がtrue
を返した場合でも、このオブジェクトがQDomEntityReference であることを意味するわけではありません。
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>
というような XML があり、この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 に書き込みます。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。