・特定ノードの件数を取得(件数をlvCountに設定・XMLTYPEのデータをpvXmlとする)
SELECT count(*) INTO lvCount FROM TABLE(XMLSequence(pvXml.extract('/STUDENTS/STUDENT')));各要素へは以下のようにアクセス可能
FOR i IN 1 .. lvCount LOOP
pvXml.extract('/STUDENTS/STUDENT['|| i || ']');
END LOOP;
・テキストノードの値取得(注意事項あり。他記事参照)
pvXml.extract('/STUDENTS/STUDENT/NAME/text()').getStringVal();・属性値の取得
pvXml.extract('/STUDENTS/STUDENT/@ID').getStringVal();
※なお、単純なextractの結果はXMLTYPEとして扱われる。複数の形式のデータが混在する場合は、これを使用し切り分けることが可能
xmlTeacher := pvXml.extract('/PEOPLE/TEACHERS');
xmlStudent := pvXml.extract('/PEOPLE/STUDENTS');
0 件のコメント:
コメントを投稿