GETCHILDNODES 関数は、指定されたノード n のすべての直接子ノードを返します。結果は順序付きリスト(DBMS_XMLDOM.DOMNODELIST)の形式で表されますが、より深い階層の子孫ノードは含まれません。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
説明
V4.4.2バージョンでは、このサブプログラムはOceanBaseデータベースV4.4.2 BP2バージョンから導入されました。
構文
DBMS_XMLDOM.getChildNodes (
node IN DBMS_XMLDOM.DOMNODE);
パラメータの説明
パラメータ |
説明 |
|---|---|
| node | 子ノードを取得する DBMS_XMLDOM.DOMNODE ハンドル。通常は子ノードを持つドキュメントノードまたは要素ノードです。具体的なサポートタイプは現在の実装によって異なります。 |
戻り値
直接子ノードで構成される DBMS_XMLDOM.DOMNODELIST。
使用方法
返されたリストを走査する際は、GETLENGTH と ITEM を併用してください。より深い階層のノードにアクセスする必要がある場合は、子ノードに対してこの関数を再帰的に呼び出します。
例
この例では、DBMS_XMLPARSER システムパッケージを使用してXMLドキュメントを解析し、DOMDOCUMENT ハンドルを取得します。次に、DBMS_XMLDOM システムパッケージを使用してXMLドキュメントの DOMNODELIST ハンドルを取得し、リスト内の最初の要素の子ノードリストを取得します。
-- パーサーとドキュメントハンドルの変数宣言
DECLARE
p DBMS_XMLPARSER.PARSER;
doc DBMS_XMLDOM.DOMDOCUMENT;
n DBMS_XMLDOM.DOMNODE;
nl DBMS_XMLDOM.DOMNODELIST;
BEGIN
-- パーサーインスタンスの作成
p := DBMS_XMLPARSER.NEWPARSER;
-- パーサーでXMLドキュメントを解析
DBMS_XMLPARSER.PARSECLOB(p, '<root><a/></root>');
-- XMLドキュメントのDOMDocumentハンドルを取得
doc := DBMS_XMLPARSER.GETDOCUMENT(p);
-- パーサーインスタンスの解放
DBMS_XMLPARSER.FREEPARSER(p);
-- XMLドキュメント内のすべての「root」という名前の要素リストを取得
nl := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(doc, 'root');
-- リストの最初の要素を取得
n := DBMS_XMLDOM.ITEM(nl, 0);
-- ノードリストを取得
nl := DBMS_XMLDOM.GETCHILDNODES(n);
-- XMLドキュメントリソースの解放
DBMS_XMLDOM.FREEDOCUMENT(doc);
END;
/