表2-21にNodeRef
インタフェースで使用できるメソッドの概要を示します。
表2-21 NodeRefメソッドの概要: DOMパッケージ
関数 | 概要 |
---|---|
|
コンストラクタです。 |
|
ノードの子リストに新しい子を追加します。 |
|
このノードを複製します。 |
|
このノードの属性を取得します。 |
|
このノードの子を取得します。 |
|
このノードの最初の子ノードを取得します。 |
|
このノードの最後の子ノードを取得します。 |
|
このノードのローカル名を取得します。 |
|
このノードの名前空間URIを、 |
|
このノードの直後の兄弟関係ノードを取得します。 |
|
このノードで変更が不許可かどうかをテストします。 |
|
ノード名を、 |
|
ノードのDOMNodeTypeを取得します。 |
|
ノードの値を、 |
|
このノードの所有者ドキュメントを取得します。 |
|
このノードの親ノードを取得します。 |
|
このノードの名前空間接頭辞を取得します。 |
|
このノードの直前の兄弟関係ノードを取得します。 |
|
このノードが属性を持つかどうかをテストします。 |
|
このノードが子を持つかどうかをテストします。 |
|
ノードの子リストに新しい子を挿入します。 |
|
指定された機能がこの実装でサポートされているかどうかをテストします。 |
|
参照されるノードを削除するためのマークを設定します。 |
|
隣接したテキスト・ノードをマージします。 |
|
既存の子ノードを削除します。 |
|
ノードの既存の子を置換します。 |
|
別のノードを参照するようにNodeRefをリセットします。 |
|
ノードの値を、 |
|
このノードの名前空間接頭辞を設定します。 |
|
デフォルトのパブリック・デストラクタです。 |
クラス・コンストラクタです。
構文 | 説明 |
---|---|
NodeRef( const NodeRef< Node>& nref, Node* nptr); |
指定のノードまたは別のノードに対する少なくとも1つの参照がすでに使用可能である場合、この指定のノードに対する参照を作成します。ノード削除フラグはコピーされず、FALSE に設定されます。 |
NodeRef( const NodeRef< Node>& nref); |
コピー・コンストラクタです。少なくとも1つの参照がすでに使用可能である場合、ノードに対する追加参照を作成します。ノード削除フラグはコピーされず、FALSE に設定されます。 |
パラメータ | 説明 |
---|---|
node_ref |
コンテキストを提供するための参照 |
nptr |
参照されるノード |
戻り値
(NodeRef)
Node
参照オブジェクト。
このノードの子リストの最後にノードを追加し、新しいノードを戻します。newChild
がDocumentFragment
である場合、その子がすべて元の順序で追加されます。DocumentFragment
ノード自体は追加されません。newChild
がすでにDOMツリー内に存在する場合は、最初に現在の位置から削除されます。
構文
Node* appendChild( NodeRef& newChild) throw (DOMException);
パラメータ | 説明 |
---|---|
newChild |
参照ノード |
戻り値
(Node*)
追加されたノード。
このノードの複製を作成して戻します。複製ノードは親を持ちません。要素を複製すると、XMLプロセッサによって生成されたデフォルト値の属性を含む、すべての属性およびその値がコピーされます。ただし、ノードに含まれるテキストは、子であるText
ノードに含まれているため、ディープ・クローンの場合以外はコピーされません。他のタイプのノードを複製すると、単純にノードのコピーが戻されます。deepがTRUE
の場合、ノードの子はすべて再帰的に複製され、複製されたノードは複製された子を持ちます。非ディープ・クローンは子を持ちません。複製されたノードが別のツリーまたはフラグメントに挿入されない場合、(ユーザーによる)削除のために、参照を介してマークされる必要があります。
構文
Node* cloneNode( boolean deep);
パラメータ | 説明 |
---|---|
deep |
ノードの下のノード階層全体を複製するか(TRUE )、またはノード自体のみを複製するか(FALSE ) |
戻り値
(Node*)
複製(クローン)ノード。
このノードの属性のNamedNodeMap
を戻します。属性が存在しない場合は、NULL
を戻します。属性ノードを持つことができるのは、要素ノードのみです。その他の種類のノードでは、常にNULL
が戻されます。現在の実装では、子ノードのノード・マップは最新のものです。元のノードにおけるすべての変更がすぐに反映されます。このため、一部のDOMツリー操作形式、特にマルチスレッド環境では副作用が出る場合があります。
構文
NamedNodeMap< Node>* getAttributes() const;
戻り値
(NamedNodeMap*)
属性のNamedNodeMap
。
子ノードのリストを戻します。このノードに子ノードがない場合はNULL
を戻します。子を持つ可能性があるのは、要素ノード、ドキュメント・ノード、DTDノードおよびDocumentFragmentノードのみです。他のすべての型ではNULL
が戻されます。現在の実装では、子ノードのリストは最新のものです。元のノードにおけるすべての変更がすぐに反映されます。このため、一部のDOMツリー操作形式、特にマルチスレッド環境では副作用が出る場合があります。
構文
NodeList< Node>* getChildNodes() const;
戻り値
(NodeList*)
子ノードのリスト。
最初の子ノードを戻します。このノードに子ノードがない場合は、NULL
を戻します。
構文
Node* getFirstChild() const;
戻り値
(Node*)
最初の子ノードまたはNULL
。
最後の子ノードを戻します。このノードに子ノードがない場合は、NULL
を戻します。
構文
Node* getLastChild() const;
戻り値
(Node*)
最後の子ノードまたはNULL
。
このノード(データ・エンコーディング内)のローカル名(修飾名のローカル部分)を、NULL
で終了する文字列で戻します。このノードの名前が完全修飾名でない(接頭辞がない)場合、ローカル名はこのノード名と同じです。
構文
oratext* getLocalName() const;
戻り値
(oratext*)
このノードのローカル名。
このノードの名前空間URI(データ・エンコーディング内)を、NULL
で終了する文字列で戻します。ノードの名前が修飾されていない(名前空間接頭辞が含まれない)場合は、ノードの作成時に有効だったデフォルトの名前空間が含まれます(ただしNULL
の場合があります)。
構文
oratext* getNamespaceURI() const;
戻り値
(oratext*)
このノードの名前空間URI。
直後の兄弟関係ノードを戻します。このノードに直後の兄弟関係が存在しない場合は、NULL
を戻します。
構文
Node* getNextSibling() const;
戻り値
(Node*)
直後の兄弟関係ノードまたはNULL
。
このノードおよびノードが属するDOMツリーで変更が不許可かどうかをテストします。このメンバー関数は、Oracleの拡張機能です。
構文
boolean getNoMod() const;
戻り値
(boolean)
変更が許可されていない場合はTRUE
。
ノード(データ・エンコーディング内)の(完全修飾の)名前を、NULL
で終了する文字列で戻します。「bar\0」または「foo:bar\0」などとなります。ノードの種類によっては、「#text
」、「#cdata-section
」、「#comment
」、「#document
」、「#document-fragment
」といった固定ノード名が設定されています。ノードの名前は、作成後は変更できません。
構文
oratext* getNodeName() const;
戻り値
(oratext*)
データ・エンコーディング内のノード名。
ノードのDOMNodeTypeを戻します。
構文
DOMNodeType getNodeType() const;
戻り値
ノードの(DOMNodeType)
。
ノードの値(対応する文字データ)を、NULL
で終了する文字列で戻します。文字および汎用エンティティが置換されています。値が設定されているのは、Attr
、CDATA
、Comment
、ProcessingInstruction
およびText
ノードのみで、他のすべてのノード・タイプにはNULL
値が設定されています。
構文
oratext* getNodeValue() const;
戻り値
(oratext *)
ノードの値。
このノードに対応するドキュメント・ノードを戻します。ドキュメント・ノードのタイプはノード・タイプから派生するものと想定されています。各ノードは1つのドキュメントにのみ属するか、どのドキュメントにも関連付けられていないこともあります。これは、ユーザーのリクエストで作成された直後などです。元のドキュメント(ノード)が戻されるか、またはWRONG_DOCUMENT_ERR例外がスローされます。
構文
Node* getOwnerDocument() const throw (DOMException);
戻り値
(Node*)
元のドキュメント・ノード。
親ノードを戻します。このノードに親ノードがない場合は、NULL
を戻します。
構文
Node* getParentNode() const;
戻り値
(Node*)
親ノードまたはNULL
。
このノードの名前空間接頭辞(データ・エンコーディング内)を、NULL
で終了する文字列で戻します。このノードの名前が完全修飾名でない(接頭辞がない)場合、NULL
が戻されます。
構文
oratext* getPrefix() const;
戻り値
(oratext*)
このノードの名前空間接頭辞。
直前の兄弟関係ノードを戻します。このノードに直前の兄弟関係がない場合は、NULL
を戻します。
構文
Node* getPreviousSibling() const;
戻り値
(Node*)
直前の兄弟関係ノードまたはNULL
。
このノードに属性が含まれ、このノードが要素である場合は、TRUE
を戻します。それ以外の場合はFALSE
を戻します。要素でないノードの場合は、常にFALSE
を戻す点に注意してください。
構文
boolean hasAttributes() const;
戻り値
(boolean)
このノードが要素であり、属性を持つ場合はTRUE
。
このノードが子を持つかどうかをテストします。子を持つ可能性があるのは、Element
、Document
、DTD
およびDocumentFragment
ノードのみです。
構文
boolean hasChildNodes() const;
戻り値
(boolean)
このノードが子を持つ場合はTRUE
。
このノードの既存の子ノードrefChild
の前にnewChild
ノードを挿入します。refChild
はこのノードの子である必要があります。newChild
がDocumentFragment
である場合、その子はすべてrefChild
の前に(同じ順序で)挿入されます。DocumentFragment
ノード自体は挿入されません。newChild
がすでにDOMツリー内に存在する場合は、最初に現在の位置から削除されます。
構文
Node* insertBefore( NodeRef& newChild, NodeRef& refChild) throw (DOMException);
パラメータ | 説明 |
---|---|
newChild |
新しいノード |
refChild |
参照ノード |
戻り値
(Node*)
挿入されるノード。
引数によって指定された機能が、このノードのDOMインプリメンテーションによりサポートされているかどうかをテストします。
構文
boolean isSupported( oratext* feature, oratext* version) const;
パラメータ | 説明 |
---|---|
feature |
機能のパッケージ名 |
version |
パッケージのバージョン |
戻り値
(boolean)
指定された機能がサポートされている場合はTRUE
。
参照されたノードが、この参照のデストラクタがコールされた時点で削除される必要があることを示すマークを設定します。このノードに対する他のすべての参照は無効になります。この動作は、他のすべての参照クラスによって継承されます。このメンバー関数は、Oracleの拡張機能です。
構文
void markToDelete();
要素をルートとしたサブツリーを正規化し、要素の隣接したText
子ノードをマージします。隣接したText
ノードは通常の解析中には作成されず、DOMコールによるドキュメントの操作後にのみ作成されることに注意してください。
構文
void normalize();
このノードの子リストからノードを削除し、削除されたノードを戻します。このノードは孤立した子です。削除後、親ノードはNULL
となります。
構文
Node* removeChild( NodeRef& oldChild) throw (DOMException);
パラメータ | 説明 |
---|---|
oldChild |
古いノード |
戻り値
(Node*)
削除されたノード。
このノードの子リストで、子ノードoldChild
を新しいノードnewChild
で置換し、oldChild
を戻します(これは孤立した子となり、親はNULL
です)。newChild
がDocumentFragment
である場合、その子がすべてoldChild
のかわりに挿入されます。DocumentFragment
ノード自体は挿入されません。newChild
がすでにDOMツリー内に存在する場合は、最初に現在の位置から削除されます。
構文
Node* replaceChild( NodeRef& newChild, NodeRef& oldChild) throw (DOMException);
パラメータ | 説明 |
---|---|
newChild |
新しいノード |
oldChild |
古いノード |
戻り値
(Node*)
置換されたノード。
この関数は、引数として指定されたNode
を参照するようにNodeRef
をリセットします。
構文
void resetNode( Node* nptr);
パラメータ | 説明 |
---|---|
nptr |
参照ノード |
ノードの値(文字データ)をNULL
で終了する文字列で設定します。値をNULL
に設定することはできません。値を持つのは、Attr
、CDATA
、Comment
、ProcessingInstruction
およびText
ノードのみです。別の種類のノードの値を設定しようとしても動作しません。新しい値はデータ・エンコーディングに含まれている必要があります。これは検証、変換、確認されません。値はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
変更が許可されていない場合はNO_MODIFICATION_ALLOWED_ERR
例外をスローし、実装で定義されたエラーの場合は、UNDEFINED_ERR
および適切なOracle XMLエラー・コード(xml.hを参照)をスローします。
構文
void setNodeValue( oratext* data) throw (DOMException);
パラメータ | 説明 |
---|---|
data |
ノードの新しい値 |
このノードの名前空間接頭辞を、NULL
で終了する文字列で設定します。接頭辞が定義済かどうかは検証されません。また、接頭辞が現在のデータ・エンコーディングに含まれているかどうかも検証されません。新しい接頭辞および古いローカル名から新しい修飾名を作成するのみです。
変更が許可されていない場合は、NO_MODIFICATION_ALLOWED_ERR
例外をスローします。このノードのnamespaceURI
がNULL
である場合、または指定された接頭辞が「xml」で、このノードのnamespaceURIが「http://www.w3.org/XML/1998/namespace」と異なる場合、またはこのノードが属性で、指定された接頭辞が「xmlns」で、このノードのnamespaceURIが「http://www.w3.org/2000/xmlns/」と異なる場合、NAMESPACE_ERR
をスローします。接頭辞の作成方法は確認されないため、INVALID_CHARACTER_ERR
例外はスローされないことに注意してください。
構文
void setPrefix( oratext* prefix) throw (DOMException);
パラメータ | 説明 |
---|---|
prefix |
新しい名前空間接頭辞 |
これはデフォルトのデストラクタです。ノードに対する参照を消去し、ノードが削除用にマークされている場合はノードを削除します。ノードが深いレベルの削除用にマークされている場合は、ノードの下のツリーも削除(割当て解除)されます。通常は環境によってコールされます。ただし、必要に応じてユーザーが直接コールできます。
構文
~NodeRef();