前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXXMLAttribute
[XML] Attribute ノードを表すクラスです。
#include <SFXXMLAttribute.hpp>
class SFXXMLAttribute : public SFXXMLNode;
SFMTYPEDEFCLASS(SFXXMLAttribute)

継承図

SFXXMLAttribute クラスの継承図

協調図

SFXXMLAttribute クラスの協調図

解説

Attribute ノード(SFXXMLAttribute)は、 Element ノード(XML 文書の要素)の 1 つの属性を保持します。 通常、属性に設定可能な値は文書に関連付けられたスキーマに定義されています。

SFXXMLAttributeSFXXMLNode を継承しますが、 Attribute ノードは、属性を設定する Element ノードの子ノードになりません。 このため、Attribute ノードは XML 文書(SFXXMLDocument)の DOM ツリーの一部と見なされません。

つまり、Attribute ノードは SFXXMLNode に定義される parentNode、previousSibling、nextSibling の属性が null になります。 そのため、DOM ツリーの親子関係、兄弟関係のノードを辿ることにより Attribute ノードに到達することはできません。

Attribute ノードは属性を記述する Element ノードのプロパティとして存在し、 SFXXMLElement::SetAttribute などの関数を使用して Element ノードに Attribute ノードを設定し、 SFXXMLElement::GetAttribute などの関数を使用して Element ノードから Attribute ノードを取得します。 SFXXMLElement::HasAttribute などの関数を使用すれば、 Element ノードに Attribute ノードが設定されているかどうかの判定も可能です。

また、Attribute ノードは DocumentFragment ノード(SFXXMLDocumentFragment)の子ノードにならない代わりに、 DocumentFragment 内の Element ノードにプロパティとして関連付けることが可能です。

属性値は、SFXXMLAttribute::SetValue 関数を使用して設定し、 SFXXMLAttribute::GetValue 関数を使用して取得します。 属性値と nodeValue 属性値は同等なので、これらの関数の代わりに SFXXMLAttribute::SetNodeValue 関数と SFXXMLAttribute::GetNodeValue 関数を使用することもできます。

属性名は、SFXXMLAttribute::GetName 関数を使用して取得します。 属性名と nodeName 属性値は同等なので、これらの関数の代わりに SFXXMLAttribute::GetNodeName 関数を使用することもできます。

XML 文書で属性値に実体参照が含まれている場合は、 Attribute ノードは子ノードとして Text ノード(SFXXMLText)または EntityReference ノード(SFXXMLEntityReference)を持つことになります。

なお、属性値はすべて文字列として表現されます。

参照

SFXXMLNode | SFXXMLElement | SFXXMLDocument | SFXXMLDocumentFragment | SFXXMLEntityReference | SFXXMLText

メンバ

コンストラクタ/デストラクタ
SFXXMLAttribute( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name , SFXAnsiStringConstRef value )
SFXXMLAttribute クラスのコンストラクタです。
SFXXMLAttribute( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name , SFXAnsiStringConstRef namespaceURI , SFXAnsiStringConstRef value )
SFXXMLAttribute クラスのコンストラクタです。
SFXXMLAttribute( SFXXMLAttributeConstRef other , Bool deep = false )
SFXXMLAttribute クラスのコンストラクタです。
~SFXXMLAttribute( Void )
SFXXMLAttribute クラスのデストラクタです。
パブリック関数
SFCError AppendChild( SFXXMLNodeConstPtr newchild )
子ノードの最後にノードを追加します。
SFCError CloneNode( SFXXMLNodeHandle clonenode , Bool deep )
ノードのコピーを作成します。
Bool EqualNode( SFXXMLNodeConstPtr arg )
指定したノードと同等かどうかを判定します。
DOMNodeListPtr GetChildNodes( Void )
すべての子ノードを取得します。
SFXXMLNodePtr GetFirstChild( Void )
最初の子ノードを取得します。
SFXXMLNodePtr GetLastChild( Void )
最後の子ノードを取得します。
ACharConstPtr GetLocalName( Void )
ノードの名前(nodeName 属性値)のローカル名を取得します。
ACharConstPtr GetName( Void )
ノードの名前(nodeName 属性値)を取得します。
ACharConstPtr GetNamespaceURI( Void )
名前空間 URI を取得します。
ACharConstPtr GetNodeName( Void )
ノードの名前(nodeName 属性値)を取得します。
NodeType GetNodeType( Void )
ノードタイプ(nodeType 属性値)を取得します。
ACharConstPtr GetNodeValue( Void )
ノードの値(nodeValue 属性値)を取得します。
ACharConstPtr GetPrefix( Void )
ノードの名前(nodeName 属性値)の名前空間接頭辞を取得します。
ACharConstPtr GetValue( Void )
ノードの値(nodeValue 属性値)を取得します。
Bool HasChildNodes( Void )
子ノードを持つかどうか判定します。
SFCError InsertBefore( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr refchild )
ノードを挿入します。
SFCError RemoveChild( SFXXMLNodeConstPtr oldchild )
子孫ノードも含めて子ノードを削除します。
SFCError ReplaceChild( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr oldchild )
子ノードを置換します。
Void SetNodeValue( ACharConstPtr value )
ノードの値(nodeValue 属性値)を設定します。
Void SetValue( SFXAnsiStringConstRef value )
ノードの値(nodeValue 属性値)を設定します。
SFXXMLNodePtr GetNextSibling( Void ) (SFXXMLNode から継承)
【無効】次の兄弟ノードを取得します。
SFXXMLNodePtr GetParentNode( Void ) (SFXXMLNode から継承)
【無効】親ノードを取得します。
SFXXMLNodePtr GetPreviousSibling( Void ) (SFXXMLNode から継承)
【無効】前の兄弟ノードを取得します。
SFXAnsiString GetText( Void ) (SFXXMLNode から継承)
ノードテキストを取得します。
Bool IsSameNode( SFXXMLNodeConstPtr other ) (SFXXMLNode から継承)
指定されたノードと同一であるか判定します。
SFCError SetText( SFXAnsiStringConstRef text ) (SFXXMLNode から継承)
ノードテキストを設定します。
DOMNamedNodeMap (SFXXMLNode から継承)
複数の DOM ノードを名前またはローカル名と名前空間 URI で管理するためのクラスです。
DOMNodeList (SFXXMLNode から継承)
複数の DOM ノードをリスト形式で管理するためのクラスです。
NodeType (SFXXMLNode から継承)
ノードタイプを表す定数です。

SFXXMLAttribute::SFXXMLAttribute
SFXXMLAttribute クラスのコンストラクタです。
[ public, explicit ]
SFXXMLAttribute(
    SFXXMLDocumentPtr owner       // ドキュメントツリーのルート
    SFXAnsiStringConstRef name    // 属性名: 修飾名("名前空間接頭辞:ローカル名")の指定も可能
    SFXAnsiStringConstRef value   // 属性値
);
[ public, explicit ]
SFXXMLAttribute(
    SFXXMLDocumentPtr owner              // ドキュメントツリーのルート
    SFXAnsiStringConstRef name           // 属性名(修飾名="名前空間接頭辞:ローカル名")
    SFXAnsiStringConstRef namespaceURI   // 属性の名前空間 URI
    SFXAnsiStringConstRef value          // 属性値
);
[ public, explicit ]
SFXXMLAttribute(
    SFXXMLAttributeConstRef other   // Attribute ノード
    Bool deep = false               // 子ノードを再帰的にコピーするかどうか
);

解説

このコンストラクタは、指定された値をこのノードに設定します。

引数には、このノードを所有するドキュメントツリーのルート(SFXXMLDocument)・属性名・属性値・属性の名前空間 URI(省略可)、 または別の Attribute ノードのいずれかを指定することが可能です。

名前空間 URI を指定する場合は、属性名は修飾名("名前空間接頭辞:ローカル名")で指定します。 指定する名前空間接頭辞が "xml" または "xmlns" の場合、namespaceURI 引数には各々以下の名前空間 URI を指定する必要があります。 異なる名前空間 URI を指定した場合、その名前空間 URI は無視され設定さません。

名前空間接頭辞 名前空間 URI
xml http://www.w3.org/XML/1998/namespace
xmlns http://www.w3.org/2000/xmlns/
[Note] 注意

name 引数に指定した属性名は、 SFXXMLAttribute::GetNodeName 関数で取得できる、 このノードの nodeName 属性として設定されます。

name 引数に指定した属性名を修飾名("名前空間接頭辞:ローカル名")で指定した場合、 名前空間接頭辞とローカル名はそれぞれ SFXXMLAttribute::GetPrefix 関数と SFXXMLAttribute::GetLocalName 関数で取得できます。

namespaceURI 引数に指定した名前空間 URI は、 SFXXMLAttribute::GetNamespaceURI 関数で取得できます。 但し、上記表の名前空間接頭辞("xml" と "xmlns")を指定する場合は、上記表の名前空間 URI を指定する必要があります。

value 引数に指定される属性値は、 SFXXMLAttribute::GetNodeValue 関数で取得できる、 このノードの nodeValue 属性として設定されます。

参照

SFXXMLAttribute::GetNodeName | SFXXMLAttribute::GetNodeValue | SFXXMLDocument


SFXXMLAttribute::~SFXXMLAttribute
SFXXMLAttribute クラスのデストラクタです。
[ public, virtual ]
virtual ~SFXXMLAttribute(Void);

解説

このデストラクタは、何も行いません。


SFXXMLAttribute::AppendChild
子ノードの最後にノードを追加します。
[ public, virtual ]
SFCError AppendChild(
    SFXXMLNodeConstPtr newchild   // 追加するノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、指定されたノード(newchild ノード)をこのノードの最後の子ノードとして追加します。

newchild ノードをコピーせずにそのまま追加します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

[Note] newchild 引数が不正になる条件

以下のとき、newchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。

[Note] 注意

newchild 引数には、Text / EntityReference の何れかのノードを指定してください。

[Note] 注意

内部で SFXXMLAttribute::InsertBefore(newchild, null) を呼び出しています。

参照

SFXXMLAttribute::InsertBefore | SFXXMLNode::AppendChild | SFXXMLNode


SFXXMLAttribute::CloneNode
ノードのコピーを作成します。
[ public, virtual ]
SFCError CloneNode(
    SFXXMLNodeHandle clonenode   // コピー先のノード(Handle 型)
    Bool deep                    // 子ノードを再帰的にコピーするかどうか
);

引数

clonenode

コピー先ノードを指定します。

deep

true の場合、子ノードを再帰的にコピーします。

false の場合、ノード自身だけをコピーします。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 失敗したとき: SFERR_FAILED

解説

この関数は、このノードのコピーを作成し、clonenode 引数に返します。

[Note] 子孫ノードのコピー

deep 引数に true を指定すると、このノードの子孫ノードも含めてコピーが行われます。 false を指定した場合は、このノードだけがコピーされます(このノードの子孫ノードはコピーされません)。

参照

SFXXMLAttribute::SFXXMLAttribute | SFXXMLNode::CloneNode | SFXXMLNode


SFXXMLAttribute::EqualNode
指定したノードと同等かどうかを判定します。
[ public, virtual, const ]
Bool EqualNode(
    SFXXMLNodeConstPtr arg   // 同等性を比較する対象のノード 
);

戻り値

  • 同等であるとき: true
  • そうでないとき: false

解説

この関数は、指定されたノードと同等かどうか(ノードの内容が同じであるかどうか)を判定します。

[Note] 2 つのノードが同等であるための条件

2 つのノードが同等であるための条件は、以下のように再帰的に定義されます。

  1. 2 つのノードが同じであること(SFXXMLNode::IsSameNode 関数の戻り値が true であるとき)
  2. 2 つのノードが同じでない(異なる)場合は、以下の条件をすべて満足すること
    • ノードタイプ(nodeType 属性値)が同じであること
    • ノードの名前(nodeName 属性値)が同じであること
    • ノードの値(nodeValue 属性値)が同じであること
    • (子ノードが存在するなら)子ノードの数が同じであり、かつ同じ位置にある子ノード同士が同等であること
  3. Attribute ノードの場合は、設定されているローカル名、名前空間 URI、名前空間接頭辞も同じであること
[Note] 2 つのノードの同一性の判定

2 つのノードが同一であるかどうか(2 つのノードが同じオブジェクトを参照しているかどうか)の判定には、 SFXXMLNode::IsSameNode 関数を使用します。

参照

SFXXMLNode::EqualNode | SFXXMLNode::IsSameNode | SFXXMLNode


SFXXMLAttribute::GetChildNodes
すべての子ノードを取得します。
[ public, virtual, const ]
DOMNodeListPtr GetChildNodes(Void);

戻り値

すべての子ノード(SFXXMLNode::DOMNodeList へのポインタ)

解説

この関数は、このノードのすべての子ノードを取得します。

[Note] 注意

子ノードが存在しない場合は null を返します。

[Note] 注意

SFXXMLNode::DOMNodeList の各要素は、 SFXXMLNode へのポインタです。

参照

SFXXMLNode::DOMNodeList | SFXXMLNode::GetChildNodes | SFXXMLNode


SFXXMLAttribute::GetFirstChild
最初の子ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetFirstChild(Void);

戻り値

最初の子ノード

解説

この関数は、このノードの最初の子ノードを取得します。

[Note] 注意

子ノードが存在しない場合は null を返します。

参照

SFXXMLNode::GetFirstChild | SFXXMLNode


SFXXMLAttribute::GetLastChild
最後の子ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetLastChild(Void);

戻り値

最後の子ノード

解説

この関数は、このノードの最後の子ノードを取得します。

[Note] 注意

子ノードが存在しない場合は null を返します。

参照

SFXXMLNode::GetLastChild | SFXXMLNode


SFXXMLAttribute::GetLocalName
ノードの名前(nodeName 属性値)のローカル名を取得します。
[ public, const ]
ACharConstPtr GetLocalName(Void);

戻り値

このノードの nodeName 属性値のローカル名

解説

この関数は、このノードの名前(nodeName 属性値)のローカル名を取得します。

Attribute ノードの場合、nodeName 属性値は XML 文書の「属性名」のことです。 「属性名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。

[Note] 注意

SFXXMLAttribute::SFXXMLAttribute コンストラクタで name 引数に修飾名で指定した場合、 修飾名の ":" よりも右側にある文字列がローカル名として返されます。

参照

SFXXMLAttribute::SFXXMLAttribute | SFXXMLAttribute::GetName | SFXXMLAttribute::GetNodeName | SFXXMLAttribute::GetName | SFXXMLAttribute::GetPrefix


SFXXMLAttribute::GetName
ノードの名前(nodeName 属性値)を取得します。
[ public, const ]
ACharConstPtr GetName(Void);

戻り値

ノードの名前(nodeName 属性値)

解説

この関数は、このノードの名前(nodeName 属性値)を取得します。

Attribute ノードの場合、nodeName 属性値は XML 文書の「属性名」のことです。 「属性名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。

[Note] 注意

属性名は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの name 引数で設定します。

[Note] 注意

SFXXMLAttribute::GetNodeName 関数を呼び出すのと同等です。

使用例

// 修飾名と名前空間 URI を指定して Attribute ノードを作成する
SFXXMLAttributePtr atti = document.CreateAttributeNS("book:isbn","http://www.w3.org/book");

// Attribute ノードに属性値を設定する
atti->SetValue("4-7741-1616-5");

// Attribute ノードを設定する
book->SetAttributeNode(atti);
    
TRACE("Attribute's name = %s", atti->GetName());           // 属性名(修飾名) = book:isbn
TRACE("Attribute's value = %s", atti->GetValue());         // 属性値         = 4-7741-1616-5
TRACE("Attribute's prefix = %s", atti->GetPrefix());       // 名前空間接頭辞 = book
TRACE("Attribute's uri = %s", atti->GetNamespaceURI());    // 名前空間 URI   = http://www.w3.org/book

参照

SFXXMLAttribute::GetNodeName | SFXXMLAttribute::GetPrefix | SFXXMLAttribute::GetLocalName | SFXXMLAttribute::SFXXMLAttribute


SFXXMLAttribute::GetNamespaceURI
名前空間 URI を取得します。
[ public, const ]
ACharConstPtr GetNamespaceURI(Void);

戻り値

このノードに設定されている名前空間 URI

解説

この関数は、このノードに設定されている名前空間 URI を取得します。

名前空間 URI が設定されていない場合は、null を返します。

[Note] 注意

名前空間 URI は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの namespaceURI 引数に指定します。

属性名の名前空間接頭辞が "xml" または "xmlns" の場合は、以下の表にある名前空間 URI しか設定できません。

名前空間接頭辞 名前空間 URI
xml http://www.w3.org/XML/1998/namespace
xmlns http://www.w3.org/2000/xmlns/

参照

SFXXMLAttribute::SFXXMLAttribute | SFXXMLAttribute::GetName | SFXXMLAttribute::GetNodeName | SFXXMLAttribute::GetLocalName | SFXXMLAttribute::GetPrefix


SFXXMLAttribute::GetNodeName
ノードの名前(nodeName 属性値)を取得します。
[ public, virtual, const ]
ACharConstPtr GetNodeName(Void);

戻り値

ノードの名前(nodeName 属性値)

解説

この関数は、このノードの名前(nodeName 属性値)を取得します。

Attribute ノードの場合、nodeName 属性値は XML 文書の「属性名」のことです。 「属性名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。

[Note] 注意

属性名は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの name 引数で設定します。

[Note] 注意

SFXXMLAttribute::GetName 関数を呼び出すのと同等です。

参照

SFXXMLAttribute::GetName | SFXXMLAttribute::SFXXMLAttribute | SFXXMLAttribute::GetLocalName | SFXXMLAttribute::GetPrefix | SFXXMLNode::GetNodeName | SFXXMLNode


SFXXMLAttribute::GetNodeType
ノードタイプ(nodeType 属性値)を取得します。
[ public, virtual, const ]
NodeType GetNodeType(Void);

戻り値

SFXXMLNode::ATTRIBUTE_NODE

解説

この関数は、このノードのタイプ(nodeType 属性値)を取得します。

Attribute ノードの場合、nodeType 属性値は SFXXMLNode::ATTRIBUTE_NODE です。

参照

SFXXMLNode::NodeType | SFXXMLNode::GetNodeType| SFXXMLNode


SFXXMLAttribute::GetNodeValue
ノードの値(nodeValue 属性値)を取得します。
[ public, virtual, const ]
ACharConstPtr GetNodeValue(Void);

戻り値

ノードの値(nodeValue 属性値)

解説

この関数は、このノードの値(nodeValue 属性値)を取得します。

Attribute ノードの場合、nodeValue 属性値は XML 文書の「属性値」のことです。

[Note] 注意

属性値は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの value 引数で設定します。

[Note] 注意

SFXXMLAttribute::GetValue 関数を呼び出すのと同等です。

参照

SFXXMLAttribute::SetNodeValue | SFXXMLAttribute::GetValue | SFXXMLAttribute::SFXXMLAttribute | SFXXMLNode::GetNodeValue | SFXXMLNode


SFXXMLAttribute::GetPrefix
ノードの名前(nodeName 属性値)の名前空間接頭辞を取得します。
[ public, const ]
ACharConstPtr GetPrefix(Void);

戻り値

このノードの nodeName 属性値の名前空間接頭辞

解説

この関数は、このノードの名前(nodeName 属性値)の名前空間接頭辞を取得します。

設定されていない場合は、null を返します。

Attribute ノードの場合、nodeName 属性値は XML 文書の「属性名」のことです。 「属性名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。

[Note] 注意

SFXXMLAttribute::SFXXMLAttribute コンストラクタで name 引数に修飾名で指定した場合、 修飾名の ":" よりも左側にある文字列が名前空間接頭辞として返されます。

参照

SFXXMLAttribute::SFXXMLAttribute | SFXXMLAttribute::GetLocalName | SFXXMLAttribute::GetName


SFXXMLAttribute::GetValue
ノードの値(nodeValue 属性値)を取得します。
[ public, const ]
ACharConstPtr GetValue(Void);

戻り値

ノードの値(nodeValue 属性値)

解説

この関数は、このノードの値(nodeValue 属性値)を取得します。

Attribute ノードの場合、nodeValue 属性値は XML 文書の「属性値」のことです。

[Note] 注意

属性値は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの value 引数で設定します。

[Note] 注意

SFXXMLAttribute::GetNodeValue 関数を呼び出すのと同等です。

参照

SFXXMLAttribute::SetValue | SFXXMLAttribute::GetNodeValue


SFXXMLAttribute::HasChildNodes
子ノードを持つかどうか判定します。
[ public, virtual, const ]
Bool HasChildNodes(Void);

戻り値

  • 子ノードを持つとき: true
  • そうでないとき: false

解説

この関数は、このノードが子ノードを持つかどうか判定します。

参照

SFXXMLNode::HasChildNodes | SFXXMLNode


SFXXMLAttribute::InsertBefore
ノードを挿入します。
[ public, virtual ]
SFCError InsertBefore(
    SFXXMLNodeConstPtr newchild   // 挿入するノード
    SFXXMLNodeConstPtr refchild   // 参照ノード、このノードの直前に挿入される(refchild が null の場合、newchild は最後の子ノードとして挿入される)
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild / refchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、newchild 引数に指定されたノード(newchild ノード)を refchild 引数に指定されたノード(refchild ノード)の前に挿入します。

newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、refchild ノードの直前に挿入します。

refchild ノードが null の場合は、一番最後の子ノードとして挿入します。 また、newchild ノードと refchild ノードが同じノードを指す場合、何も起こりません。

[Note] newchild / refchild 引数が不正になる条件

以下のとき、newchild / refchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • refchild ノードの親がこのノードでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。
  • newchild ノードが、Text / EntityReference の何れのノードでもない場合。

参照

SFXXMLNode::InsertBefore | SFXXMLNode


SFXXMLAttribute::RemoveChild
子孫ノードも含めて子ノードを削除します。
[ public, virtual ]
SFCError RemoveChild(
    SFXXMLNodeConstPtr oldchild   // 削除する子ノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • oldchild 引数が null であるとき、またはこのノードの子ノードでないとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、このノードから子孫ノードも含めて指定された子ノードを削除します。

参照

SFXXMLNode::RemoveChild | SFXXMLNode


SFXXMLAttribute::ReplaceChild
子ノードを置換します。
[ public, virtual ]
SFCError ReplaceChild(
    SFXXMLNodeConstPtr newchild   // 置換後ノード
    SFXXMLNodeConstPtr oldchild   // 置換前ノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild / oldchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY
  • 失敗したとき: SFERR_FAILED

解説

この関数は、oldchild 引数に指定されたこのノードの子ノード(oldchild ノード)を newchild 引数に指定されたノード(newchild ノード)で置換します。

newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

oldchild ノード以下の子孫ノードは、DOM ツリーから削除され、メモリも解放されます。

newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、oldchild ノードを置換します。

newchild ノードと oldchild ノードが同じである場合は、何も起こりません。

[Note] newchild / oldchild 引数が不正になる条件

以下のとき、newchild / oldchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノード、またはoldchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • oldchild ノードの親がこのノードでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。

[Note] 注意

newchild 引数には、Text / EntityReference の何れかのノードを指定してください。

[Tip] Tip

内部では、SFXXMLAttribute::InsertBefore(newchild, oldchild) を呼び出してから、 SFXXMLAttribute::RemoveChild(oldchild) を実行します。

参照

SFXXMLAttribute::InsertBefore | SFXXMLAttribute::RemoveChild | SFXXMLNode::ReplaceChild | SFXXMLNode


SFXXMLAttribute::SetNodeValue
ノードの値(nodeValue 属性値)を設定します。
[ public, virtual ]
Void SetNodeValue(
    ACharConstPtr value   // 属性値
);

解説

この関数は、このノードの値(nodeValue 属性値)を指定された値に設定します。

Attribute ノードの場合、nodeValue 属性値は XML 文書の「属性値」のことです。

[Note] 注意

SFXXMLAttribute::SetValue 関数を呼び出すのと同等です。

参照

SFXXMLAttribute::GetNodeValue | SFXXMLAttribute::SetValue | SFXXMLAttribute::SFXXMLAttribute | SFXXMLNode::SetNodeValue | SFXXMLNode


SFXXMLAttribute::SetValue
ノードの値(nodeValue 属性値)を設定します。
[ public ]
Void SetValue(
    SFXAnsiStringConstRef value   // 属性値 
);

解説

この関数は、このノードの値(nodeValue 属性値)を指定された値に設定します。

Attribute ノードの場合、nodeValue 属性値は XML 文書の「属性値」のことです。

[Note] 注意

SFXXMLAttribute::SetNodeValue 関数を呼び出すのと同等です。

参照

SFXXMLAttribute::GetValue | SFXXMLAttribute::SetNodeValue