Nis
26
2020

Clob XML Ayrıştırılması XPATH

Merhaba,

XML formatındaki clob veri yapısındaki verinin ayrıştırılması ve veri yapısından istenilen değerlerin okunması için örnek xpath ile plsql kodları aşağıdaki gibidir.

<tns:main xmlns:tns="http://www.orasistem.com/consultant/developers">
<tns:consultant>
<tns:name title="princible" contacttype="phone" phonenumber="5067705857">mustafa</tns:name>
<tns:surname>korkmaz</tns:surname>
<tns:age>38</tns:age>
</tns:consultant>
<tns:consultant>
<tns:name title="senior" contacttype="email" emailaddress="bkorkmaz@orasistem.com">barış</tns:name>
<tns:surname>korkmaz</tns:surname>
<tns:age>27</tns:age>
</tns:consultant>
</tns:main>

clob olrak verilen xml veri yapısına uygun olan yapı xmltype ile önce xml le çevirilir. Ardından xpath ile istenilen veriler içerisinden okunur. Ayrıca aşağıdaki extract cümlesi içerisinde xml veri yapısında olan namespace ve element attribute leride dikkate alınarak ayrıştırma yapılmıştır.


DECLARE
l_xml CLOB
:= '<tns:main xmlns:tns="http://www.orasistem.com/consultant/developers">
<tns:consultant>
<tns:name title="princible" contacttype="phone" phonenumber="5067705857">mustafa</tns:name>
<tns:surname>korkmaz</tns:surname>
<tns:age>38</tns:age>
</tns:consultant>
<tns:consultant>
<tns:name title="senior" contacttype="email" emailaddress="bkorkmaz@orasistem.com">barış</tns:name>
<tns:surname>korkmaz</tns:surname>
<tns:age>27</tns:age>
</tns:consultant>
</tns:main>';
BEGIN
DBMS_OUTPUT.put_line (
xmltype (l_xml).EXTRACT (
'/tns:main/tns:consultant[1]/tns:name/text()',
'xmlns:tns="http://www.orasistem.com/consultant/developers"').getStringVal ());

DBMS_OUTPUT.put_line (
xmltype (l_xml).EXTRACT (
'/tns:main/tns:consultant[2]/tns:name/text()',
'xmlns:tns="http://www.orasistem.com/consultant/developers"').getStringVal ());

DBMS_OUTPUT.put_line (
xmltype (l_xml).EXTRACT (
'/tns:main/tns:consultant/tns:name[@title="princible"]/text()',
'xmlns:tns="http://www.orasistem.com/consultant/developers"').getStringVal ());


DBMS_OUTPUT.put_line (
xmltype (l_xml).EXTRACT (
'/tns:main/tns:consultant/tns:name[@title="senior"]/text()',
'xmlns:tns="http://www.orasistem.com/consultant/developers"').getStringVal ());

DBMS_OUTPUT.put_line (
xmltype (l_xml).EXTRACT (
'/tns:main/tns:consultant[tns:age[. < 30]]/tns:name/text()',
'xmlns:tns="http://www.orasistem.com/consultant/developers"').getStringVal ());
END;

Mustafa Korkmaz

Oracle Applications Developer at Partnera
2005 yılında Dokuz Eylül Üniversitesi Endüstri Mühendisliğinden Mezun
Oldu, 2011 Yılında Ahmet Yesevi Üniversitesi Bilgisayar Mühendisliğinde
Yüksek Lisansını Tamamlandı,2012 Yılında Doğuş Üniversitesinde Bilgisayar
Mühendisliği Doktora Eğitimine Başladı.10 yılı aşkın bir zamandır Oracle
Ürünleri Uygulama Yazılım Uzmanı Olarak profesyonel kariyerine devam
etmektedir. İlgi alanları Middleware, CI/CD,
Oracle Database , PL/SQL , Java , Makine Öğrenmesi ve Veri Madenciliği alanlarındadır.
2 versiyon Oracle Database ' (10g, 11g) inde OCA(Oracle Certificate Associate) ve
PL/SQL Certificated Professional ünvanları bulunmaktadır.
Mail: mustafakorkmz@gmail.com
Mustafa Korkmaz


Yorum yapın

*