Alfabetik Sıralama :ABCDEFGHIJKLMNOPQRSTUVWXYZ -


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
%>



Konu: ASP ile XML´den veri almak
 
Okunma Sayısı : 134
Eklenme Tarihi : 31 Ocak 2007, Çarşamba
SONRAKI BILGI : Okul çocuğu en az sekiz saat uyumalı   
Forum Linki:
Aranan Kelime:
   

 

 

Copyright © 2008 Temha.neT