QDomNode

「QDomNode」の編集履歴(バックアップ)一覧に戻る

QDomNode - (2014/05/28 (水) 22:12:33) のソース

*注意
**cloneNode()以外はシャローコピーです
返り値であるオブジェクトを変更すると、DOMツリー上のオブジェクトも変更されます。

**nullノードとは
isNull()の値がtrueである空のノードです
----
*基本
**コンストラクタ
|QDomNode::QDomNode()|
&color(brown){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及び接頭辞を持つことができます
-&color(cadetblue){[[QDomDocument]]::createElement()} を使用して作成した要素または &color(cadetblue){[[QDomDocument]]::createAttribute()} を使用して作成した属性は名前空間URI及び接頭辞には空の文字列が設定されます
-&color(cadetblue){[[QDomDocument]]::createElementNS()} を使用して作成した要素または &color(cadetblue){[[QDomDocument]]::createAttributeNS()} を使用して作成した属性は名前空間URI及び接頭辞が設定されます

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

|QString QDomNode::nodeName() const|
本ノードの名前を取得します
名前の意味はノードのオブジェクトによって異なります
名前空間は考慮されていないので正確な名前を得る場合は &color(cadetblue){namespaceURI()} 及び &color(cadetblue){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 & &color(coral){pre})|
本ノードが名前空間接頭辞を持っている場合、名前空間接頭辞を変更できます
持っていない場合は何もしません
[[QDomElement]] オブジェクト または [[QDomAttr]] オブジェクトのみ名前空間を持つことができます
名前空間はノード生成時に指定されなければならず、後から名前空間を指定することはできません
----
*関係するノードを取得する
**ルートノードを取得する
|QDomDocument QDomNode::ownerDocument() const|
本ノードのルートノードを取得します

**親ノードを取得する
|QDomNode QDomNode::parentNode() const|
本ノードの親ノードを取得します
親ノードが存在しない場合、&color(brown){nullノード}を返します

**兄弟ノードを取得する
|QDomNode QDomNode::nextSibling() const|
次の兄弟ノードを取得します
次の兄弟ノードが存在しない場合は&color(brown){nullノード}を返します

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

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

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

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

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

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

***子ノードを削除する
|QDomNode QDomNode::removeChild(const QDomNode & &color(coral){oldChild})|
&color(coral){oldChild}を本ノードの子から削除します

-成功した場合は &color(coral){oldChild} の参照を返し、失敗した場合は&color(brown){nullノード}を返します
-&color(coral){oldChild} で指定した子ノードを本ノードから削除します
-&color(coral){oldChild} は本ノードの直接の子ノードである必要があります

***子ノードを置換する
|QDomNode QDomNode::replaceChild(const QDomNode & &color(coral){newChild}, const QDomNode & &color(coral){oldChild})|
&color(coral){oldChild} を &color(coral){newChild} で置換します

-成功した場合は &color(coral){oldChild} の参照を返し、失敗した場合は&color(brown){nullノード}を返します
-&color(coral){oldChild} は本ノードの直接の子ノードである必要があります
-&color(coral){newChild} が既に他のノードの子ノードである場合、本ノードの子ノードに変更されます
-&color(coral){newChild} が既に本ノードの子ノードである場合、位置が変更されます
-&color(coral){newChild} が [[QDomDocumentFragment]] オブジェクトの場合、&color(coral){oldChild} はフラグメントにある子ノードに置換されます

***子ノードを追加する
|QDomNode QDomNode::appendChild(const QDomNode & &color(coral){newChild})|
本ノードの子ノードの最後に新しい子ノードを追加します

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

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

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

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

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

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

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

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

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

|QDomElement QDomNode::nextSiblingElement(const QString & &color(coral){tagName} = QString()) const|
指定したタグ名 &color(coral){tagName} を持つ次の兄弟ノードを取得します
タグ名を指定しなかった場合は次の兄弟ノードを取得します
該当する子要素がない場合は&color(brown){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 & &color(coral){v})|
本ノードに値を設定します

*メソッド
**クリアする
|void QDomNode::clear()|
本ノードを&color(brown){nullノード}にします
本ノードが所持しているコンテンツや型などは削除されます

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

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

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

|enum QDomNode::EncodingPolicy|値|挙動|
|QDomNode::EncodingFromDocument|1|文章のエンコーディング形式を使用|
|QDomNode::EncodingFromTextStream|2|&color(cadetblue){QDomNode::QTextStream} て指定したエンコーディング形式を使用|

**オブジェクトのタイプを判定する
|bool QDomNode::isNull() const|
本ノードが&color(brown){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]] オブジェクトに変換します
本ノードが属性でない場合、&color(brown){nullノード}を返します

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

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

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

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

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

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

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

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

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

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

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

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

**その他
|bool QDomNode::isSupported(const QString & &color(coral){feature}, const QString & &color(coral){version}) const|
機能 &color(coral){feature} がXMLDOMレベル &color(coral){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 & &color(coral){n}) const|

|bool QDomNode::operator==(const QDomNode & &color(coral){n}) const|

|QDomNode & QDomNode::operator=(const QDomNode & &color(coral){n})|