![]() ![]() ![]() ![]() |
SophiaFramework UNIVERSE 5.2 |
#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. |
![]() ![]() ![]() ![]() |