SophiaFramework UNIVERSE 5.3 |
#include <SFXXMLDocumentFragment.hpp>
class SFXXMLDocumentFragment : public SFXXMLNode;
SFMTYPEDEFCLASS(SFXXMLDocumentFragment)
DocumentFragment ノード (SFXXMLDocumentFragment) は、 XML 文書の文書フラグメントを保持します。
DocumentFragment | |
---|---|
DocumentFragment とは、 DOM ツリーを操作する際の一時的な作業用サブツリーを作成するための「軽量 (最小限度)」 の Document オブジェクトです。 文書ツリーのあるノードに DocumentFragment ノードを挿入するとき、 実際に挿入されるのは DocumentFragment ノードではなく、DocumentFragment ノードの子が挿入されることに注意してください。 |
コンストラクタ/デストラクタ |
---|
SFXXMLDocumentFragment(
SFXXMLDocumentPtr owner
) SFXXMLDocumentFragment クラスのコンストラクタです。
|
SFXXMLDocumentFragment(
SFXXMLDocumentFragmentConstRef other
, Bool deep = false
) SFXXMLDocumentFragment クラスのコンストラクタです。
|
~SFXXMLDocumentFragment( Void ) SFXXMLDocumentFragment クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SFCError |
AppendChild(
SFXXMLNodeConstPtr newchild
) 子ノードの最後にノードを追加します。
|
SFCError |
CloneNode(
SFXXMLNodeHandle clonenode
, Bool deep
) ノードのコピーを作成します。
|
DOMNodeListPtr |
GetChildNodes( Void ) すべての子ノードを取得します。
|
SFXXMLNodePtr |
GetFirstChild( Void ) 最初の子ノードを取得します。
|
SFXXMLNodePtr |
GetLastChild( Void ) 最後の子ノードを取得します。
|
ACharConstPtr |
GetNodeName( Void ) ノードの名前(nodeName 属性値)を取得します。
|
NodeType |
GetNodeType( Void ) ノードタイプ(nodeType 属性値)を取得します。
|
Bool |
HasChildNodes( Void ) 子ノードを持つかどうか判定します。
|
SFCError |
InsertBefore(
SFXXMLNodeConstPtr newchild
, SFXXMLNodeConstPtr refchild
) ノードを挿入します。
|
SFCError |
RemoveChild(
SFXXMLNodeConstPtr oldchild
) 子孫ノードも含めて子ノードを削除します。
|
SFCError |
ReplaceChild(
SFXXMLNodeConstPtr newchild
, SFXXMLNodeConstPtr oldchild
) 子ノードを置換します。
|
Bool |
EqualNode(
SFXXMLNodeConstPtr arg
)
(SFXXMLNode から継承)
指定されたノードと同等かどうかを判定します。
|
SFXXMLNodePtr |
GetNextSibling( Void )
(SFXXMLNode から継承)
【無効】次の兄弟ノードを取得します。
|
ACharConstPtr |
GetNodeValue( Void )
(SFXXMLNode から継承)
ノードの値(nodeValue 属性値)を取得します。
|
SFXXMLNodePtr |
GetParentNode( Void )
(SFXXMLNode から継承)
【無効】親ノードを取得します。
|
SFXXMLNodePtr |
GetPreviousSibling( Void )
(SFXXMLNode から継承)
【無効】前の兄弟ノードを取得します。
|
SFXAnsiString |
GetText( Void )
(SFXXMLNode から継承)
ノードテキストを取得します。
|
Bool |
IsSameNode(
SFXXMLNodeConstPtr other
)
(SFXXMLNode から継承)
指定されたノードと同一であるか判定します。
|
Void |
SetNodeValue(
ACharConstPtr value
)
(SFXXMLNode から継承)
ノードの値(nodeValue 属性値)を設定します。
|
SFCError |
SetText(
SFXAnsiStringConstRef text
)
(SFXXMLNode から継承)
ノードテキストを設定します。
|
型 |
---|
DOMNamedNodeMap
(SFXXMLNode から継承)
複数の DOM ノードを名前またはローカル名と名前空間 URI で管理するためのクラスです。
|
DOMNodeList
(SFXXMLNode から継承)
複数の DOM ノードをリスト形式で管理するためのクラスです。
|
NodeType
(SFXXMLNode から継承)
ノードタイプを表す定数です。
|
[ public, explicit ] SFXXMLDocumentFragment( SFXXMLDocumentPtr owner // ドキュメントツリーのルート );
[ public, explicit ] SFXXMLDocumentFragment( SFXXMLDocumentFragmentConstRef other // DocumentFragment ノード Bool deep = false // 子ノードを再帰的にコピーするかどうか );
このコンストラクタは、指定された値をこのノードに設定します。
引数には、このノードを所有するドキュメントツリーのルート(SFXXMLDocument)、 または別の DocumentFragment ノードのいずれかを指定することが可能です。
[ public, virtual ] virtual ~SFXXMLDocumentFragment(Void);
このデストラクタは、何も行いません。
[ public, virtual ] SFCError AppendChild( SFXXMLNodeConstPtr newchild // 追加するノード );
この関数は、指定されたノード(newchild ノード)をこのノードの最後の子ノードとして追加します。
newchild ノードをコピーせずにそのまま追加します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。
newchild 引数が不正になる条件 | |
---|---|
以下のとき、newchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。
|
注意 | |
---|---|
newchild 引数には、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れかのノードを指定してください。 |
注意 | |
---|---|
内部で SFXXMLDocumentFragment::InsertBefore(newchild, null) を呼び出しています。 |
[ public, virtual ] SFCError CloneNode( SFXXMLNodeHandle clonenode // コピー先のノード(Handle 型) Bool deep // 子ノードを再帰的にコピーするかどうか );
コピー先ノードを指定します。
true の場合、子ノードを再帰的にコピーします。
false の場合、ノード自身だけをコピーします。
この関数は、このノードのコピーを作成し、clonenode 引数に返します。
子孫ノードのコピー | |
---|---|
deep 引数に true を指定すると、このノードの子孫ノードも含めてコピーが行われます。 false を指定した場合は、このノードだけがコピーされます(このノードの子孫ノードはコピーされません)。 |
[ public, virtual, const ] DOMNodeListPtr GetChildNodes(Void);
すべての子ノード(SFXXMLNode::DOMNodeList へのポインタ)
この関数は、このノードのすべての子ノードを取得します。
注意 | |
---|---|
子ノードが存在しない場合は null を返します。 |
注意 | |
---|---|
SFXXMLNode::DOMNodeList の各要素は、 SFXXMLNode へのポインタです。 |
[ public, virtual, const ] SFXXMLNodePtr GetFirstChild(Void);
最初の子ノード
この関数は、このノードの最初の子ノードを取得します。
注意 | |
---|---|
子ノードが存在しない場合は null を返します。 |
[ public, virtual, const ] SFXXMLNodePtr GetLastChild(Void);
最後の子ノード
この関数は、このノードの最後の子ノードを取得します。
注意 | |
---|---|
子ノードが存在しない場合は null を返します。 |
[ public, virtual, const ] ACharConstPtr GetNodeName(Void);
"#document-fragment"
この関数は、このノードの名前(nodeName 属性値)を取得します。
DocumentFragment ノードの場合、nodeName 属性値は "#document-fragment" です。
[ public, virtual, const ] NodeType GetNodeType(Void);
SFXXMLNode::DOCUMENT_FRAGMENT_NODE
この関数は、このノードのタイプ(nodeType 属性値)を取得します。
DocumentFragment ノードの場合、nodeType 属性値は SFXXMLNode::DOCUMENT_FRAGMENT_NODE です。
[ public, virtual, const ] Bool HasChildNodes(Void);
この関数は、このノードが子ノードを持つかどうか判定します。
[ public, virtual ] SFCError InsertBefore( SFXXMLNodeConstPtr newchild // 挿入するノード SFXXMLNodeConstPtr refchild // 参照ノード、このノードの直前に挿入される );
この関数は、newchild 引数に指定されたノード(newchild ノード)を refchild 引数に指定されたノード(refchild ノード)の前に挿入します。
newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。
newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、refchild ノードの直前に挿入します。
refchild ノードが null の場合は、一番最後の子ノードとして挿入します。 また、newchild ノードと refchild ノードが同じノードを指す場合、何も起こりません。
newchild / refchild 引数が不正になる条件 | |
---|---|
以下のとき、newchild / refchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。
|
[ public, virtual ] SFCError RemoveChild( SFXXMLNodeConstPtr oldchild // 削除する子ノード );
この関数は、このノードから子孫ノードも含めて指定された子ノードを削除します。
[ public, virtual ] SFCError ReplaceChild( SFXXMLNodeConstPtr newchild // 置換後ノード SFXXMLNodeConstPtr oldchild // 置換前ノード );
この関数は、oldchild 引数に指定されたこのノードの子ノード(oldchild ノード)を newchild 引数に指定されたノード(newchild ノード)で置換します。
newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。
oldchild ノード以下の子孫ノードは、DOM ツリーから削除され、メモリも解放されます。
newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、oldchild ノードを置換します。
newchild ノードと oldchild ノードが同じである場合は、何も起こりません。
newchild / oldchild 引数が不正になる条件 | |
---|---|
以下のとき、newchild / oldchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。
|
注意 | |
---|---|
newchild 引数には、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れかのノードを指定してください。 |
Tip | |
---|---|
内部では、SFXXMLDocumentFragment::InsertBefore(newchild, oldchild) を呼び出してから、 SFXXMLDocumentFragment::RemoveChild(oldchild) を実行します。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |