Kreiranje XML-a iz SQL tabele
Objavljeno: 05-02-2014 | Autor: Žana (Jovana) Baćović | Kategorija: T-SQL, XML
1
Ako želite da kreirate jednostavan XML koristeći podatke iz SQL tabele, to možete da uradite koristeći XML Path mod u FOR XML klauzuli.
Primjer: Prikazivanje svih crtanih filmova iz Kefalo baze, sa zaglavljem SpisakCrtaca možete da uradite na sledeći način:
SELECT Naziv FROM dbo.CrtaniFilmovi FOR XML PATH(""),ROOT("SpisakCrtaca"),TYPE
Kreiranje XML-a sa hijerarhijom
Ukoliko želite da kreirate XML koji sadrži ugnježdene elemente, jedan od načina je da koristite AUTO mod u FOR XML klauzuli.
Primjer: Prikazivanje svih epizoda crtanih filmova iz Kefalo baze, pri čemu se na prvom nivou hijerarhije nalazi crtani film dok se This is due to the complexity of recovering best free data recovery software from a USB PCB hard drive, as it does not have the standard SATA or IDE interface on the PCB. na drugom nivou prikazuju epizode odgovarajućeg crtanog filma:
SELECT Crtac.Naziv, Epizoda.EpizodaID, Epizoda.Naziv,Epizoda.GodinaPremijernogIzvodjenja FROM dbo.CrtaniFilmovi Crtac INNER JOIN dbo.CrtaneEpizode Epizoda ON Epizoda.CrtacID = Crtac.CrtacID ORDER BY Crtac.CrtacID FOR XML AUTO,ELEMENTS,TYPE
Prikazivanje svih kolona sa drugog nivoa u jednom redu (u prethodnom primjeru su to kolone EpizodaID, Naziv i GodinaPremijernogIzvodjenja) je moguće ukoliko se u prethodnom upitu izostavi atribut ELEMENTS:
SELECT Crtac.Naziv, Epizoda.EpizodaID, Epizoda.Naziv,Epizoda.GodinaPremijernogIzvodjenja FROM dbo.CrtaniFilmovi Crtac INNER JOIN dbo.CrtaneEpizode Epizoda ON Epizoda.CrtacID = Crtac.CrtacID ORDER BY Crtac.CrtacID FOR XML AUTO,TYPE
Ako želite da dodate zaglavlje svom XML fajlu, onda dodate na kraju PATH mod, sa ROOT argumentom:
SELECT ( SELECT Crtac.Naziv, Epizoda.EpizodaID, Epizoda.Naziv,Epizoda.GodinaPremijernogIzvodjenja FROM dbo.CrtaniFilmovi Crtac INNER JOIN dbo.CrtaneEpizode Epizoda ON Epizoda.CrtacID = Crtac.CrtacID ORDER BY Crtac.CrtacID FOR XML AUTO,ELEMENTS,TYPE) FOR XML PATH(""),ROOT("KefaloBaza"),TYPE
Na isti način možete da dodate proizvoljan broj nivoa, koji mogu da predstavljaju neku vrstu naslova odnosno zaglavlja.
Za kompleksnije XML strukture možete da koristite EXPLICIT mod sa FOR XML klauzulom, koji daje veću kontrolu i fleksibilnost u izgledu hijerarhije u odnosu na AUTO mod.
[…] smo objasnili kako se tabela ili rezultat nekog upita mogu pretvoriti u XML. Kao mala dopuna tog članka, danas ćemo prikazati i trik kako se svaki red tabele može […]