VBA
Kullanarak XML
‘yi Nasıl Ayrıştırılır?: Adım Adım Kılavuz
XML ayrıştırmak başlangıçta korkutucu görünebilir, özellikle de VBA
dünyasına yeni başlayanlar için. Eğer bir XML yapısından değerler erişmeniz gerekiyorsa, örneğin bir noktadan X
ve Y
koordinatlarını çıkarmak gibi, doğru yere geldiniz! Bu yazıda, VBA’da XML’i verimli bir şekilde ayrıştırma sürecini keşfedeceğiz.
Sorun: X ve Y Değerlerinin Çıkarılması
Aşağıdaki gibi bir XML dizesine sahip olduğunuzu hayal edin:
<PointN xsi:type='typens:PointN'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<X>24.365</X>
<Y>78.63</Y>
</PointN>
X
ve Y
değerlerini çıkarmak istiyorsunuz, böylece onları VBA kodunuzda tamsayı değişkenleri olarak saklayabilirsiniz. XML ve VBA’da yeni biri olarak soru şu ortaya çıkıyor: Bunu nasıl başarabilirim?
Çözüm: MSXML2.DOMDocument Kullanımı
Neyse ki, MSXML2.DOMDocument
nesnesini kullanarak XML verilerini ayrıştırmanın basit bir yöntemi vardır. İzlemeniz gereken adımlar şunlardır:
Adım 1: MSXML2 Referansını Ayarlayın
Kodlamaya başlamadan önce, VBA editörünüzde Microsoft XML, v6.0
kütüphanesini referans aldığınızdan emin olun. İşte nasıl yapılacağı:
- VBA editörünüzü açın (
ALT + F11
tuşlarına basın). Araçlar
>Referanslar
seçeneğine tıklayın.Microsoft XML, v6.0
‘ı arayın ve yanındaki kutucuğu işaretleyin.Tamam
butonuna tıklayın.
Adım 2: XML Dizesini Yükleyin
XML dizesini bir DOMDocument içine şu şekilde yükleyebilirsiniz:
Dim xmlDoc As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
xmlDoc.LoadXML "<PointN xsi:type='typens:PointN' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema'><X>24.365</X><Y>78.63</Y></PointN>"
Adım 3: X ve Y Düğümlerine Erişin
XML yapısı yüklendikten sonra, X
ve Y
değerlerine selectSingleNode
metodu ile kolayca erişebilirsiniz:
Dim xValue As Double
Dim yValue As Double
xValue = xmlDoc.SelectSingleNode("//X").Text
yValue = xmlDoc.SelectSingleNode("//Y").Text
Adım 4: Tamsayı Değişkenleri Olarak Saklayın
Gerekirse, bu değerleri tamsayıya çevirerek saklayabilirsiniz:
Dim xInt As Integer
Dim yInt As Integer
xInt = CInt(xValue)
yInt = CInt(yValue)
Adımların Özeti
- MSXML2 referansını ayarlayın.
- XML dizeyini bir DOMDocument içine yükleyin.
selectSingleNode
kullanarakX
veY
değerlerini alın.- Gerekirse değerleri tamsayıya çevirin.
Sonuç
VBA’da XML ayrıştırmak ilk başta karmaşık görünebilir, ancak MSXML2.DOMDocument
nesnesi ile bu iş çok daha basit hale gelir. Bu adımları takip ederek, XML yapıların içinden değerleri kolayca çıkarabilir ve bunları çalışmanızda kullanabilirsiniz.
Daha fazla bilgi ve keşif için şu kaynakları ziyaret etmeyi öneririz:
Bu kılavuz ile, VBA projelerinizde XML ayrıştırma konusunda iyi bir donanıma sahip olacaksınız. İyi kodlamalar!