QDomElement Class

QDomElement クラスは、DOM ツリー内の 1 つの要素を表します。詳細...

Header: #include <QDomElement>
CMake: find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake: QT += xml
Inherits: QDomNode

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

QDomElement()
QDomElement(const QDomElement &element)
QString attribute(const QString &name, const QString &defValue = QString()) const
QString attributeNS(const QString &nsURI, const QString &localName, const QString &defValue = QString()) const
QDomAttr attributeNode(const QString &name)
QDomAttr attributeNodeNS(const QString &nsURI, const QString &localName)
QDomNamedNodeMap attributes() const
QDomNodeList elementsByTagName(const QString &tagname) const
QDomNodeList elementsByTagNameNS(const QString &nsURI, const QString &localName) const
bool hasAttribute(const QString &name) const
bool hasAttributeNS(const QString &nsURI, const QString &localName) const
QDomNode::NodeType nodeType() const
void removeAttribute(const QString &name)
void removeAttributeNS(const QString &nsURI, const QString &localName)
QDomAttr removeAttributeNode(const QDomAttr &oldAttr)
void setAttribute(const QString &name, const QString &value)
void setAttribute(const QString &name, double value)
void setAttribute(const QString &name, float value)
void setAttribute(const QString &name, int value)
void setAttribute(const QString &name, qlonglong value)
void setAttribute(const QString &name, qulonglong value)
void setAttribute(const QString &name, uint value)
void setAttributeNS(const QString &nsURI, const QString &qName, const QString &value)
void setAttributeNS(const QString &nsURI, const QString &qName, double value)
void setAttributeNS(const QString &nsURI, const QString &qName, int value)
void setAttributeNS(const QString &nsURI, const QString &qName, qlonglong value)
void setAttributeNS(const QString &nsURI, const QString &qName, qulonglong value)
void setAttributeNS(const QString &nsURI, const QString &qName, uint value)
QDomAttr setAttributeNode(const QDomAttr &newAttr)
QDomAttr setAttributeNodeNS(const QDomAttr &newAttr)
void setTagName(const QString &name)
QString tagName() const
QString text() const
QDomElement &operator=(const QDomElement &other)

詳細説明

要素は、tagName ()と、それに関連付けられた0個以上の属性を持つ。タグ名はsetTagName() で変更できます。

要素の属性はQDomAttr オブジェクトで表され、attribute() およびattributeNode() 関数を使用して問い合わせることができます。setAttribute ()とsetAttributeNode ()関数で属性を設定できます。属性はremoveAttribute() で削除できます。これらの関数には、名前空間を意識した同等のもの、すなわちsetAttributeNS ()、setAttributeNodeNS ()、removeAttributeNS ()がある。

ノードのテキストにアクセスしたい場合は、text() を使用します。

QDomElement e = //...
//...
QString s = e.text()

text() 関数は、テキストを見つけるために再帰的に動作します(すべての要素がテキストを含むわけではないため)。あるノードの子ノードすべてに含まれるテキストをすべて見つけたい場合は、子ノードを繰り返し検索してQDomText ノードを探します。

QString text;
QDomElement element = doc.documentElement();
for(QDomNode n = element.firstChild(); !n.isNull(); n = n.nextSibling())
{
    QDomText t = n.toText();
    if (!t.isNull())
        text += t.data();
}

firstChildtoText().data() や n. ().data() を直接使用するのではなく、各ノードをテキスト・ノードに変換して () を使用するようにしています。toText text

指定したタグ名を持つ要素のすべての子孫のリストを取得するには、elementsByTagName ()またはelementsByTagNameNS ()を使用します。

dom文書の要素をブラウズするには、firstChildElement ()、lastChildElement ()、nextSiblingElement ()、previousSiblingElement ()を使用します。例えば、"database "というルート要素内の "entry "というすべての子要素を反復処理するには、次のようにします:

QDomDocument doc = // ...
QDomElement root = doc.firstChildElement("database");
QDomElement elt = root.firstChildElement("entry");
for (; !elt.isNull(); elt = elt.nextSiblingElement("entry")) {
    // ...
}

ドキュメント・オブジェクト・モデルの詳細については、レベル1とレベル2コアを参照してください。DOM実装のより一般的な紹介は、QDomDocument ドキュメントを参照してください。

メンバ関数の説明

QDomElement::QDomElement()

空の要素を構築します。コンテンツを持つ要素を構築するにはQDomDocument::createElement() 関数を使用します。

QDomElement::QDomElement(const QDomElement &element)

element のコピーを構築します。

コピーのデータは共有されます(シャローコピー):一方のノードを変更すると、もう一方のノードも変更されます。深いコピーを作成したい場合は、cloneNode() を使用します。

QString QDomElement::attribute(const QString &name, const QString &defValue = QString()) const

name という属性を返します。その属性が存在しない場合はdefValue が返されます。

setAttribute()、attributeNode()、setAttributeNode() およびattributeNS()も参照

QString QDomElement::attributeNS(const QString &nsURI, const QString &localName, const QString &defValue = QString()) const

ローカル名localName および名前空間 URInsURI を持つ属性を返します。属性が存在しない場合はdefValue が返されます。

setAttributeNS()、attributeNodeNS()、setAttributeNodeNS()、attribute()も参照

QDomAttr QDomElement::attributeNode(const QString &name)

name という属性に対応するQDomAttr オブジェクトを返します。そのような属性が存在しない場合はnull attribute が返されます。

setAttributeNode()、attribute()、setAttribute()、attributeNodeNS()も参照

QDomAttr QDomElement::attributeNodeNS(const QString &nsURI, const QString &localName)

localName というローカル名とnsURI という名前空間 URI を持つ属性に対応するQDomAttr オブジェクトを返します。そのような属性が存在しない場合はnull attribute が返されます。

setAttributeNodeNS()、setAttributeNode()、attribute()、setAttribute()も参照

QDomNamedNodeMap QDomElement::attributes() const

この要素のすべての属性を含むQDomNamedNodeMap を返します。

attribute()、setAttribute()、attributeNode()、setAttributeNode()も参照

QDomNodeList QDomElement::elementsByTagName(const QString &tagname) const

この要素をルートとする要素サブツリーのプレオーダートラバーサル中に遭遇した、tagname という名前のこの要素のすべての子孫を含むQDomNodeList を返します。返されるリスト内の要素の順序は、事前順序探索中に遭遇した順序です。

elementsByTagNameNS() およびQDomDocument::elementsByTagName()も参照

QDomNodeList QDomElement::elementsByTagNameNS(const QString &nsURI, const QString &localName) const

この要素をルートとする要素サブツリーのプレオーダートラバーサル中に遭遇した、ローカル名localName と名前空間 URInsURI を持つこの要素のすべての子孫を含むQDomNodeList を返します。返されるリスト内の要素の順序は、事前順序探索中に遭遇した順序です。

elementsByTagName() およびQDomDocument::elementsByTagNameNS()も参照

bool QDomElement::hasAttribute(const QString &name) const

この要素がname という属性を持つ場合はtrue を返し、そうでない場合はfalse を返します。

注意:この関数は、名前空間の存在を考慮しません。その結果、指定された名前は、名前空間接頭辞を含む完全修飾された属性名に対してテストされます。

特定の名前空間と名前を持つ属性を明示的にテストするにはhasAttributeNS() を使用します。

bool QDomElement::hasAttributeNS(const QString &nsURI, const QString &localName) const

この要素がローカル名localName と名前空間 URInsURI を持つ属性を持つ場合true を返し、そうでない場合は false を返します。

QDomNode::NodeType QDomElement::nodeType() const

ElementNode を返します。

void QDomElement::removeAttribute(const QString &name)

この要素から namename という属性を削除します。

setAttribute()、attribute() およびremoveAttributeNS()も参照して ください。

void QDomElement::removeAttributeNS(const QString &nsURI, const QString &localName)

この要素から、ローカル名localName と名前空間 URInsURI を持つ属性を削除します。

setAttributeNS()、attributeNS()、removeAttribute() も参照

QDomAttr QDomElement::removeAttributeNode(const QDomAttr &oldAttr)

この要素から属性oldAttr を削除して返します。

attributeNode() およびsetAttributeNode() も参照

void QDomElement::setAttribute(const QString &name, const QString &value)

value を持つname という属性を追加します。同じ名前の属性が存在する場合、その値はvalue で置き換えられます。

attribute()、setAttributeNode() およびsetAttributeNS() も参照

void QDomElement::setAttribute(const QString &name, double value)

これはオーバーロードされた関数です。

書式設定には常にQLocale::C が使用されます。

void QDomElement::setAttribute(const QString &name, float value)

これはオーバーロードされた関数です。

書式設定には常にQLocale::C が使用されます。

void QDomElement::setAttribute(const QString &name, int value)

これはオーバーロードされた関数です。

書式設定には常にQLocale::C を使用します。

void QDomElement::setAttribute(const QString &name, qlonglong value)

これはオーバーロードされた関数です。

書式設定には常にQLocale::C を使用します。

void QDomElement::setAttribute(const QString &name, qulonglong value)

これはオーバーロードされた関数です。

書式設定には常にQLocale::C を使用する。

void QDomElement::setAttribute(const QString &name, uint value)

これはオーバーロードされた関数です。

フォーマットは常にQLocale::C を使用します。

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, const QString &value)

修飾名qName と名前空間 URInsURI を持つ属性を、値value で追加します。同じローカル名と名前空間 URI を持つ属性が存在する場合、その接頭辞はqName の接頭辞に置き換えられ、その値はvalue に置き換えられます。

qName は修飾名ですが、既存の属性の値を置き換えるべきかどうかを決定するためにローカル名が使われます。

attributeNS()、setAttributeNodeNS()、setAttribute()も参照

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, double value)

これはオーバーロードされた関数です。

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, int value)

これはオーバーロードされた関数です。

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, qlonglong value)

これはオーバーロードされた関数です。

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, qulonglong value)

これはオーバーロードされた関数です。

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, uint value)

これはオーバーロードされた関数である。

QDomAttr QDomElement::setAttributeNode(const QDomAttr &newAttr)

この要素に属性newAttr を追加します。

要素にnewAttr と同じ名前の別の属性がある場合、この関数はその属性を置き換えて返します。そうでない場合、この関数はnull attribute を返します。

attributeNode()、setAttribute()、setAttributeNodeNS()も参照

QDomAttr QDomElement::setAttributeNodeNS(const QDomAttr &newAttr)

この要素に属性newAttr を追加します。

要素にnewAttr と同じローカル名と名前空間 URI を持つ別の属性がある場合、この関数はその属性を置き換えて返します;そうでない場合、この関数はnull attribute を返します。

attributeNodeNS()、setAttributeNS()、setAttributeNode()も参照

void QDomElement::setTagName(const QString &name)

この要素のタグ名をname に設定します。

tagName()も参照

QString QDomElement::tagName() const

この要素のタグ名を返します。このようなXML要素の場合

<img src="myimg.png">

のような XML 要素の場合、タグ名は "img" を返します。

setTagName() も参照

QString QDomElement::text() const

要素のテキストあるいは空文字列を返します。

<h1>Hello <b>Qt</b> <![CDATA[<xml is cool>]]></h1>

<h1> タグに対するQDomElement の関数 text() は、以下のテキストを返す:

Hello Qt <xml is cool>

この関数では、コメントは無視されます。この関数はQDomTextQDomCDATASection オブジェクトのみを評価します。

QDomElement &QDomElement::operator=(const QDomElement &other)

この DOM 要素にother を割り当てます。

コピーのデータは共有されます(シャローコピー):一方のノードを変更すると、もう一方のノードも変更されます。ディープコピーを行いたい場合は、cloneNode() を使用してください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。