Ilk önce bu XML belgesinin içeriğini inceleyelim;
<?xml version="1.0" encoding="ISO-8859-9" ?>
<Tarih_Date Tarih="24.02.2006" Date="02/24/2006">
<Currency Kod="USD" CurrencyCode="USD">
<Unit>1</Unit>
<Isim>AMERİKAN DOLARI</Isim>
<CurrencyName>US DOLLAR</CurrencyName>
<ForexBuying>1.3145</ForexBuying>
<ForexSelling>1.3208</ForexSelling>
<BanknoteBuying>1.3136</BanknoteBuying>
<BanknoteSelling>1.3228</BanknoteSelling>
<CrossRateUSD>1</CrossRateUSD>
<CrossRateOther></CrossRateOther>
</Currency>
<Currency Kod="CAD" CurrencyCode="CAD">
<Unit>1</Unit>
<Isim>KANADA DOLARI</Isim>
<CurrencyName>CANADIAN DOLLAR</CurrencyName>
<ForexBuying>1.14</ForexBuying>
<ForexSelling>1.1452</ForexSelling>
<BanknoteBuying>1.1358</BanknoteBuying>
<BanknoteSelling>1.1496</BanknoteSelling>
<CrossRateUSD>1.1533</CrossRateUSD>
<CrossRateOther></CrossRateOther>
</Currency>
</Tarih_Date>
Görüldüğü gibi “Tarih_Date” isimli root element ve onun altındaki “Currency” isimli Elementlerden oluşuyor. Yukarıdaki XML belgesinde yalnızca 2 tane para birimi için listeleme yapılmıştır. Gerçek XML belgesinde daha fazla sayıda para türü için listeleme yapılmıştır.
“Currency” Elementinin altında ise bu paranın alış,Satış değerleri gibi bazı alt elementler bulunmaktadır. Bizim için de gerekli olan kısımlar da zaten bunlardır.
Projemize bir tane Doviz isimli Class ekliyoruz. Bu Class’ın amacı her para birimi için bir nesne oluşturup bu para değerlerinin hepsini bir liste haline getirebilmektir;
Imports System.Xml
Imports System.Xml.XPath
Public Class Doviz
Private mKod As String
Private mAd As String
Private mAlisFiyati As String
Private mSatisFiyati As String
Public Property Kod() As String
Get
Return mKod
End Get
Set(ByVal Value As String)
mKod = Value
End Set
End Property
Public Property Ad() As String
Get
Return mAd
End Get
Set(ByVal Value As String)
mAd = Value
End Set
End Property
Public Property AlisFiyati() As String
Get
Return mAlisFiyati
End Get
Set(ByVal Value As String)
mAlisFiyati = Value
End Set
End Property
Public Property SatisFiyati() As String
Get
Return mSatisFiyati
End Get
Set(ByVal Value As String)
mSatisFiyati = Value
End Set
End Property
Public Shared Function KuruGetir() As ArrayList
Dim Liste As New ArrayList
Dim Xd As XPathDocument
Try
Xd = New XPathDocument("http://www.tcmb.gov.tr/kurlar/today.xml")
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dim Xp As XPathNavigator = Xd.CreateNavigator
Dim Ni As XPathNodeIterator = Xp.Select("/Tarih_Date/Currency")
While Ni.MoveNext
Dim Ri As New Doviz
Dim Ni2 As XPathNodeIterator
Ni2 = Ni.Current.Select("Isim")
Ni2.MoveNext()
Ri.Ad = Ni2.Current.Value
Ni2 = Ni.Current.Select("ForexBuying")
Ni2.MoveNext()
Ri.AlisFiyati = Ni2.Current.Value
Ni2 = Ni.Current.Select("ForexSelling")
Ni2.MoveNext()
Ri.SatisFiyati = Ni2.Current.Value
Liste.Add(Ri)
End While
Return Liste
End Function