QDomNode


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

QDomNode

要素や属性といった各ノードのベースとなるクラスです
QDomNode (Qt5.3)

注意

cloneNode()以外はシャローコピーです

返り値であるオブジェクトを変更すると、DOMツリー上のオブジェクトも変更されます。

nullノードとは

isNull()の値がtrueである空のノードです

基本

コンストラクタ

QDomNode::QDomNode()
nullノード を作成します

コピーコンストラクタ

QDomNode::QDomNode(const QDomNode & n)
オブジェクトはシャローコピーされます
ディープコピーをする場合はcloneNode()を使用します

デストラクタ

QDomNode::~QDomNode()

ノードに関する情報を取得する

型を取得する

NodeType QDomNode::nodeType() const
本ノードの型を取得します

enum QDomNode::NodeType 内容
QDomNode::ElementNode 1 要素のノード
QDomNode::AttributeNode 2 属性のノード
QDomNode::TextNode 3 テキストノード
QDomNode::CDATASectionNode 4 CDATAノード
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::CharacterDataNode 22 文字データノード

名前を取得する


QString QDomNode::namespaceURI() const
本ノードの名前空間URIを取得します
名前空間URIを持たない場合は空の文字列を返します

QString QDomNode::prefix() const
本ノードの名前空間接頭辞を取得します
名前空間接頭辞を持たない場合は空の文字列を返します

  • 名前空間URI及び接頭辞はノード生成時に指定されなければならず、後から指定しますことはできません
  • QDomElement オブジェクトまたは QDomAttr オブジェクトのみ名前空間URI及び接頭辞を持つことができます
  • QDomDocument::createElement() を使用して作成した要素または QDomDocument::createAttribute() を使用して作成した属性は名前空間URI及び接頭辞には空の文字列が設定されます
  • QDomDocument::createElementNS() を使用して作成した要素または QDomDocument::createAttributeNS() を使用して作成した属性は名前空間URI及び接頭辞が設定されます

QString QDomNode::localName() const
本ノードが名前空間を利用している場合、ローカル名を取得します
名前空間を利用していない場合は空の文字列を返します

QString QDomNode::nodeName() const
本ノードの名前を取得します
名前の意味はノードのオブジェクトによって異なります
名前空間は考慮されていないので正確な名前を得る場合は namespaceURI() 及び localName() を使用します

enum QDomNode::NodeType 返り値
QDomAttr 属性名
QDomCDATASection "#cdata-section"
QDomComment "#comment"
QDomDocument "#document"
QDomDocumentFragment "#document*fragment"
QDomDocumentType 文章型名
QDomElement タグ名
QDomEntity 実体名
QDomEntityReference 参照された実体名
QDomNotation 記法名
QDomProcessingInstruction 処理命令のターゲット
QDomText "#text"

void QDomNode::setPrefix(const QString & pre )
本ノードが名前空間接頭辞を持っている場合、名前空間接頭辞を変更できます
持っていない場合は何もしません
QDomElement オブジェクト または QDomAttr オブジェクトのみ名前空間を持つことができます
名前空間はノード生成時に指定されなければならず、後から名前空間を指定することはできません

関係するノードを取得する

ルートノードを取得する

QDomDocument QDomNode::ownerDocument() const
本ノードのルートノードを取得します

親ノードを取得する

QDomNode QDomNode::parentNode() const
本ノードの親ノードを取得します
親ノードが存在しない場合、 nullノード を返します

兄弟ノードを取得する

QDomNode QDomNode::nextSibling() const
次の兄弟ノードを取得します
次の兄弟ノードが存在しない場合は nullノード を返します

QDomNode QDomNode::previousSibling() const
前の兄弟ノードを取得します
前の兄弟ノードが存在しない場合は nullノード を返します

子ノード

子ノードを取得する

bool QDomNode::hasChildNodes() const
子ノードが存在する場合はtrue、そうでない場合はfalseを返します

QDomNodeList QDomNode::childNodes() const
本ノードの直接の子ノードのリストを取得します
子ノードが存在しない場合は空の QDomNodeList を返します

QDomNode QDomNode::firstChild() const
本ノードの最初の子ノードを取得します
子ノードが存在しない場合は nullノード を返します

QDomNode QDomNode::lastChild() const
本ノードの最後の子ノードを取得します
子ノードがない場合は nullノード を返します

QDomNode QDomNode::namedItem(const QString & name ) const
nodeName() の値が name と等しい最初に見つかった子ノードを取得します
該当するノードが存在しない場合は nullノード を返します

子ノードを削除する

QDomNode QDomNode::removeChild(const QDomNode & oldChild )
oldChild を本ノードの子から削除します

  • 成功した場合は oldChild の参照を返し、失敗した場合は nullノード を返します
  • oldChild で指定した子ノードを本ノードから削除します
  • oldChild は本ノードの直接の子ノードである必要があります

子ノードを置換する

QDomNode QDomNode::replaceChild(const QDomNode & newChild , const QDomNode & oldChild )
oldChildnewChild で置換します

  • 成功した場合は oldChild の参照を返し、失敗した場合は nullノード を返します
  • oldChild は本ノードの直接の子ノードである必要があります
  • newChild が既に他のノードの子ノードである場合、本ノードの子ノードに変更されます
  • newChild が既に本ノードの子ノードである場合、位置が変更されます
  • newChildQDomDocumentFragment オブジェクトの場合、 oldChild はフラグメントにある子ノードに置換されます

子ノードを追加する

QDomNode QDomNode::appendChild(const QDomNode & newChild )
本ノードの子ノードの最後に新しい子ノードを追加します

  • 成功した場合は newChild の参照を返し、失敗した場合は nullノード を返します
  • nullノード でこの関数を呼んだ場合、なにもせず、 nullノード を返します
  • newChild が既に他のノードの子ノードである場合、本ノードの子ノードに変更されます
  • newChild が既に本ノードの子ノードである場合、位置が変更されます
  • newChildQDomDocumentFragment オブジェクトの場合、フラグメントにある子ノードはすべて削除され、その子ノードは本ノードの子ノードの最後にまとめて追加されます
  • newChildQDomElement オブジェクトであり、本ノードが既に要素ノードを子ノードに持った QDomDocument オブジェクトである場合、 newChild は追加されず、 nullノード を返します
  • DOMの仕様では属性ノードを挿入することは許可されていませんが、歴史的な理由から QDom では許可されています

QDomNode QDomNode::insertAfter(const QDomNode & newChild , const QDomNode & refChild )
refChild ノードの後に newChild を挿入します

  • 成功した場合は newChild の参照を返し、失敗した場合は nullノード を返します
  • refChild は本ノードの直接の子ノードである必要があります
  • refChildnullノード を指定した場合 newChild は本ノードの子ノードの最後に追加されます
  • newChild が既に他のノードの子ノードである場合、本ノードの子ノードに変更されます
  • newChild が既に本ノードの子ノードである場合、位置が変更されます
  • newChildQDomDocumentFragment オブジェクトの場合、フラグメントにある子ノードはすべて削除され、その子ノードは refChild の後にまとめて追加されます
  • DOMの仕様では属性ノードを挿入することは許可されていませんが、歴史的な理由から QDom では許可されています

QDomNode QDomNode::insertBefore(const QDomNode & newChild , const QDomNode & refChild )
refChild ノードの前に newChild を挿入します

  • 成功した場合は newChild の参照を返し、失敗した場合は nullノード を返します
  • refChild は本ノードの直接の子ノードである必要があります
  • refChildnullノード を指定した場合 newChild は本ノードの子ノードの最初に追加されます
  • newChild が既に他のノードの子ノードである場合、本ノードの子ノードに変更されます
  • newChild が既に本ノードの子ノードである場合、位置が変更されます
  • newChildQDomDocumentFragment オブジェクトの場合、フラグメントにある子ノードはすべて削除され、その子ノードは refChild の前にまとめて追加されます

DOMの仕様では属性ノードを挿入しますことは許可されていませんが、歴史的な理由から QDom では許可されています

子要素

子要素を取得する

QDomElement QDomNode::firstChildElement(const QString & tagName = QString()) const
指定したタグ名 tagName を持つ最初に見つかった子要素を取得します
タグ名を指定しなかった場合は最初の子要素を返します
該当する子要素がない場合は nullノード を返します

QDomElement QDomNode::lastChildElement(const QString & tagName = QString()) const
指定したタグ名 tagName を持つ最後に見つかった子要素を取得します
タグ名を指定しなかった場合は最後の子要素を返します
該当する子要素がない場合は nullノード を返します

QDomElement QDomNode::previousSiblingElement(const QString & tagName = QString()) const
指定したタグ名 tagName を持つ前の兄弟ノードを取得します
タグ名を指定しなかった場合は前の兄弟ノードを取得します
該当する子要素がない場合は nullノード を返します

QDomElement QDomNode::nextSiblingElement(const QString & tagName = QString()) const
指定したタグ名 tagName を持つ次の兄弟ノードを取得します
タグ名を指定しなかった場合は次の兄弟ノードを取得します
該当する子要素がない場合は nullノード を返します

属性

属性を取得する

QDomNamedNodeMap QDomNode::attributes() const
すべての属性の名前付きノードマップを取得します
属性は QDomElement オブジェクトでのみ提供されます

属性があるかチェックする

bool QDomNode::hasAttributes() const
本ノードが属性を持っている場合はtrue、そうでない場合はfalseを返します

値を取得する

QString QDomNode::nodeValue() const
本ノードの値を取得します
値の意味はノードのオブジェクトによって異なります
以下以外の子クラスでは空の文字列を返します
QDomAttr 属性値
QDomCDATASection CDATAセクションのコンテンツ
QDomComment コメント
QDomProcessingInstruction 命令処理のデータ
QDomText テキスト

値を設定する

void QDomNode::setNodeValue(const QString & v )|
本ノードに値を設定します

メソッド

クリアする

void QDomNode::clear()
本ノードを nullノード にします
本ノードが所持しているコンテンツや型などは削除されます

コピーする

QDomNode QDomNode::cloneNode(bool deep = true) const
QDomNodeのディープコピーを作成します
deep =trueの場合、子ノード以下もすべてコピーされます
deep =falseの場合、本ノードのみコピーされます

XML形式にして保存する

void QDomNode::save(QTextStream & stream , int indent , EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const
ノード及びすべての子ノードをXML形式に変換し、 stream で指定したストリームに書き込みます
indent ではノードのインデントに使用する空白の量を指定します

  • 保存する文字コード
encodingPolicy 本ノードのタイプ 挙動
QDomNode::EncodingFromDocument QDomDocument XML宣言で指定されているものを使用します。指定されていない場合はUTF8を使用します
QDomNode::EncodingFromDocument QDomDocument以外 stream で指定されている文字コードを使用します
QDomNode::EncodingFromTextStream QDomDocument stream で指定されている文字コードを使用します
QDomNode::EncodingFromTextStream QDomDocument以外 stream で指定されている文字コードを使用します
  • 文章に無効なXML文字及び与えられた文字コードでエンコードできない文字が含まれる場合の挙動は定義されていません

enum QDomNode::EncodingPolicy 挙動
QDomNode::EncodingFromDocument 1 文章のエンコーディング形式を使用
QDomNode::EncodingFromTextStream 2 QDomNode::QTextStream て指定したエンコーディング形式を使用

オブジェクトのタイプを判定する

bool QDomNode::isNull() const
本ノードが nullノード である場合はtrue、そうでない場合はfalseを返します

bool QDomNode::isAttr() const
本ノードが属性である場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomAttr オブジェクトであることを示すものではありません

bool QDomNode::isCDATASection() const
本ノードがCDATAセクションである場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomCDATASection オブジェクトを示すものではありません

bool QDomNode::isCharacterData() const
本ノードが文字データノードである場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomCharacterData オブジェクトを示すものではありません

bool QDomNode::isComment() const
本ノードがコメントである場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomComment オブジェクトを示すものではありません

bool QDomNode::isDocument() const
本ノードがドキュメントである場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomDocument オブジェクトを示すものではありません

bool QDomNode::isDocumentFragment() const
本ノードがドキュメントフラグメントである場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomDocumentFragment オブジェクトを示すものではありません

bool QDomNode::isDocumentType() const
本ノードが文章型である場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomDocumentType オブジェクトを示すものではありません

bool QDomNode::isElement() const
本ノードが要素である場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomElement オブジェクトを示すものではありません

bool QDomNode::isEntity() const
本ノードが実体である場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomEntity オブジェクトを示すものではありません

bool QDomNode::isEntityReference() const
本ノードが実体参照である場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomEntityReference オブジェクトを示すものではありません

bool QDomNode::isNotation() const
本ノードがNOTATIONである場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomNotation オブジェクトを示すものではありません

bool QDomNode::isProcessingInstruction() const
本ノードが処理命令である場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomProcessingInstruction オブジェクトを示すものではありません

bool QDomNode::isText() const
本ノードがテキストである場合はtrue、そうでない場合はfalseを返します
trueを返した場合でも本ノードが QDomText オブジェクトを示すものではありません

変換する

QDomCDATASection QDomNode::toCDATASection() const
QDomNode を子クラスである QDomCDATASection オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomCharacterData QDomNode::toCharacterData() const
QDomNode を子クラスである QDomCharacterData オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomComment QDomNode::toComment() const
QDomNode を子クラスである QDomComment オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomDocument QDomNode::toDocument() const
QDomNode を子クラスである QDomDocument オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomDocumentFragment QDomNode::toDocumentFragment() const
QDomNode を子クラスである QDomDocumentFragment オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomDocumentType QDomNode::toDocumentType() const
QDomNode を子クラスである QDomDocumentType オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomElement QDomNode::toElement() const
QDomNode を子クラスである QDomElement オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomEntity QDomNode::toEntity() const
QDomNode を子クラスである QDomEntity オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomEntityReference QDomNode::toEntityReference() const
QDomNode を子クラスである QDomEntityReference オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomNotation QDomNode::toNotation() const
QDomNode を子クラスである QDomNotation オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomProcessingInstruction QDomNode::toProcessingInstruction() const
QDomNode を子クラスである QDomProcessingInstruction オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomText QDomNode::toText() const
QDomNode を子クラスである QDomText オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

QDomAttr QDomNode::toAttr() const
QDomNode を子クラスである QDomAttr オブジェクトに変換します
本ノードが属性でない場合、 nullノード を返します

その他

bool QDomNode::isSupported(const QString & feature , const QString & version ) const
機能 feature がXMLDOMレベル version でサポートされている場合はtrue、そうでない場合はfalseを返します

int QDomNode::columnNumber() const
QDomDocument::setContent()で自動生成されたノードの場合、対応したXML文章上の列番号を返します
それ以外の手段で生成されたノードの場合は-1を返します

int QDomNode::lineNumber() const
QDomDocument::setContent()で自動生成されたノードの場合、対応したXML文章上の行番号を返します
それ以外の手段で生成されたノードの場合は-1を返します

void QDomNode::normalize()
本ノード以下のすべてのノードを標準化します
連続した QDomText オブジェクトは一つに統合されます

演算子

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

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

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