|  | 
ASP ile XML den veri almak - XML Webmaster bilgi bankası, knowledge base Webmaster Araçları| AnaSayfa > XML  > ASP ile XML den veri almak |  |  |  | Kategori | : XML |  | Gönderen | : Admin |  | Tarih | : 2008-12-07 |  | Puan | : 7  | Katılımcı : 5 |  | Okunma | : 7328 |  |  |  |  |  |  |  |  | Bu yazımızda ASP ile XML dosyalarından nasıl veri alırız bunu işleyeceğiz. XML nedir ne değildir, yapısı nasıldır, nasıl yazılır tüm bunlar için internette yüzlerce örnek bulabilirsiniz. Gerekli bilgiyi buralardan bulabilirsiniz. XML ortak veri değişim standardıdır denir ama bu değişim nasıl yapılır bu konuda bilgi bulmak neredeyse imkansızdır.
 
 Bizde bu yazımızda ASP ile bir XML dosyasından nasıl veri alırız bunu işleyeceğiz.
 
 Öncelikle elimizde içinden veri alacağımız bir XML dosyası olmalı. Yani elimizde olmalı derken içinden veri almayı düşündüğümüz bir XML dosyası var olmalı. Biz bu yazımızda progen firmasının ücretsiz olarak sunduğu hava durumu bilgisi alıp bunu sayfamıza yazdıracağız. Bunun için kullanacağımız adres http://xml.progen.com.tr/havadurumu.php?s=giresun adresi. Bu adresi tarayıcınızda görüntülerseniz aşağıdaki gibi bir yapısı olduğunu görebilirsiniz.
 
 <?xml version="1.0" encoding="ISO-8859-9" ?>
 - <PROGEN>
 -         <havadurumu>
 <sehir_adi>Giresun</sehir_adi>
 <son_guncelleme>2005-02-22 00:02:59</son_guncelleme>
 <tarih>2005-02-22 23:00:00</tarih>
 <durum>Az Bulutlu</durum>
 <sicaklik>7</sicaklik>
 <ruzgar>Güneyden Hafif</ruzgar>
 <nem>0</nem>
 <gorus>20 km</gorus>
 <ruzgar_etkisi />
 <nem_etkisi />
 </havadurumu>
 </PROGEN>
 Biz bu sayfaya bağlanıp buradan sitemizde göstermek istediğimiz tarih,durum, sicaklik, nem bilgilerini alacağız.
 
 Öncelikle aşağıdaki gibi bu XML dosyasına MSXML.DOMDocument objesi ile ServerHTTPRequest isteğinde bulunup XML dosyasını yüklüyoruz.
 
 <%
 set xmlDoc = CreateObject("MSXML.DOMDocument")
 xmlDoc.async = false
 xmlDoc.setProperty "ServerHTTPRequest", true
 xmlDoc.load("http://xml.progen.com.tr/havadurumu.php?s=giresun")
 %>
 
 Eğer bu işlem sırasında hata oluşmuşsa bunu görüntüleyelim.
 
 <%
 If (xmlDoc.parseError.errorCode <> 0) then
 Response.Write "XML Hatası: " & xmlDoc.parseError.reason
 Else
 ´Veri alma işlemleri
 end If
 %>
 
 Eğer dosyayı kazasız belasız almış isek bunu içinden <havadurumu> ismindeki kanal içindeki alt başlıklardaki(tag) verileri alalım.
 
 <%
 set channelNodes = xmlDoc.selectNodes("//havadurumu/*")
 
 for each entry in channelNodes
 if entry.tagName = "tarih" then
 strTarih = entry.text
 elseif entry.tagName = "durum" then
 strDurum = entry.text
 elseif entry.tagName = "sicaklik" then
 strSicaklik = entry.text
 elseif entry.tagName = "nem" then
 strNem = entry.text
 end if
 next
 
 Response.Write "Tarih: " & strTarih & "<br />"
 Response.Write "Durum: " & strDurum & "<br />"
 Response.Write "Sıcaklık: " & strSicaklik &"<br />"
 Response.Write "Nem: " & strNem &"<br />"
 %>
 
 Evet işlem bu kadar basit. set channelNodes = xmlDoc.selectNodes("//havadurumu/*") diyerek içinden veri alacağınız kanalın adını yazıp sonrada bu kanal içindeki alt tagları kontrol ederek eğer sizin istediğiniz tag ise içindeki değeri alıyorsunuz.
 
 Kodumuzun en son hali şöyle:
 
 URL = "http://xml.progen.com.tr/havadurumu.php?s=giresun"
 
 set xmlDoc = createObject("MSXML.DOMDocument")
 xmlDoc.async = false
 xmlDoc.setProperty "ServerHTTPRequest", true
 xmlDoc.load(URL)
 
 If (xmlDoc.parseError.errorCode <> 0) then
 Response.Write "XML Hatası: " & xmlDoc.parseError.reason
 Else
 
 set channelNodes = xmlDoc.selectNodes("//havadurumu/*")
 
 for each entry in channelNodes
 if entry.tagName = "tarih" then
 strTarih = entry.text
 elseif entry.tagName = "durum" then
 strDurum = entry.text
 elseif entry.tagName = "sicaklik" then
 strSicaklik = entry.text
 elseif entry.tagName = "nem" then
 strNem = entry.text
 end if
 next
 
 Response.Write "Giresunda Hava<br />"
 Response.Write "Tarih: " & strTarih & "<br />"
 Response.Write "Durum: " & strDurum & "<br />"
 Response.Write "Sıcaklık: " & strSicaklik &"<br />"
 Response.Write "Nem: " & strNem &"<br />"
 
 end If
 %>
 
 
 
 
 | 
 | Yorumlar |  | Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin! |  | Yorum Ekleme Aparatı |  | Yorum Eklemek için lütfen sol menuden giris yapınız.. |  | Toplam 0 yorum listelendi. | 
 |