Facebook RSS Feed
 

.NET Micro Framework: XML Okumak

-İnternet bağlantısına sahip cihazların her geçen gün arttığı günümüzde mikrodenetleyiciler ile İnternet'e erişip XML verisi çekmek de kolaylaşıyor. XML ile online haber, havadurumu ve diğer RSS kanallarına ulaşıp bunları geliştireceğimiz cihaza entegre edebiliyoruz. Örneğimizde elimizdeki XML verisinin elemanlarını okuyan bir uygulama geliştireceğiz.

Micro Framework ile XML Oluşturmayı merak ediyorsanız, ilgili yazıma buradan gözatabilirsiniz.

Uygulama Kodları

Visual Studio'da yeni bir Micro Framework Console Application oluşturup proje referansları arasına "System.IO.dll" ve "System.Xml.dll" kütüphanelerini ekleyelim. System.IO referansını memory stream oluştururken, System.XML referansını ise XML okurken kullanacağız.

Uygulamamızda önce bir XML verisi oluşturup bunu memory stream'e göndereceğiz. İkinci aşamada ise XML Reader kullanarak XML verisini node'lara bölüp herbirini okuyacağız. Okuduğumuz veriyi XML Node türüne göre sınıflandırıp debug mesajı olarak Visual Studio'ya göndereceğiz.

Program.cs dosyasının kodlarını inceleyelim:

using System;
using System.IO;
using System.Threading;
using System.Text;
using System.Xml;
using Microsoft.SPOT;
 
namespace MFXMLOkumak
{
    public class Program
    {
        public static void Main()
        {
            //Deneme amaçlı XML verisini oluşturalım:
            string xmlVerisi = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                                "<Veriseti>" +
                                    "<Veri>" +
                                        "<Ozellik1>Deger 1</Ozellik1>" +
                                        "<Ozellik2>Deger 2</Ozellik2>" +
                                    "</Veri>" +
                                    "<Veri>" +
                                        "<Ozellik1>Deger 3</Ozellik1>" +
                                        "<Ozellik2>Deger 4</Ozellik2>" +
                                    "</Veri>" +
                                "</Veriseti>";
 
            //XML verisini byte'lara ayırarak memory stream'e gönderelim:
            MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlVerisi));
 
            //İsteğe bağlı: XML okuyucunun ayarlarını belirleyelim:
            XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
 
            xmlReaderSettings.IgnoreComments = false//Yorum satırlarını göster
            xmlReaderSettings.IgnoreProcessingInstructions = false//XML işleme yönergelerini kullan
            xmlReaderSettings.IgnoreWhitespace = true//Boşlukları görmezden gel
 
            //Oluşturduğumuz memory stream'i belirlediğimiz ayarlara göre okuyacak
            //bir XML okuyucu oluşturalım:
            XmlReader xmlReader = XmlReader.Create(memoryStream, xmlReaderSettings);
 
            while (!xmlReader.EOF) //XML'in sonuna kadar
            {
                xmlReader.Read(); //XML'in bir satırını oku
                switch (xmlReader.NodeType) //Node türüne göre karar ver
                {
                    case XmlNodeType.XmlDeclaration: //XML Decleration ise
                        Debug.Print(xmlReader.Name);
                        break;
                    case XmlNodeType.Element: //XML Elementi ise
                        Debug.Print(xmlReader.Name);
                        break;
                    case XmlNodeType.Text: //XML Değeri ise
                        Debug.Print(xmlReader.Value);
                        break;
                    case XmlNodeType.Comment: //Açıklama satırı ise
                        Debug.Print(xmlReader.Value);
                        break;
                    default:
                        break;
                }
            }
 
            xmlReader.Close(); //XML Reader'i kapatalım.
            xmlReader.Dispose(); //XML Reader'in kullandığı kaynakları temizleyelim.
 
            Thread.Sleep(Timeout.Infinite); //Main Thread'i uyutalım.
        }
    }
}

Uygulamayı çalıştırdığınızda XML verisinin işlenip Visual Studio Output yada Immediate Window'da aşağıdaki sonucun oluştuğunu göreceksiniz.

xml
Veriseti
Veri
Ozellik1
Deger 1
Ozellik2
Deger 2
Veri
Ozellik1
Deger 3
Ozellik2
Deger 4

Benzer bir yöntemle SD kart yada Internet üzerindeki bir XML dosyasını işleyip verilere ulaşmak da mümkündür.

Uygulama kodlarını buradan indirebilirsiniz.




 
Hoşgeldiniz!
Son güncelleme: 25.12.2016
-
Yeni Teknik Yazılar
Latte Panda İncelemesi
Turta IoT HAT İncelemesi
USB Gamepad Kullanımı
GPIO Kullanımı
VEML6075 UV Sensör Kullan...
-
İlgili Gruplar
.NET MF ve Gadgeteer FB Grubu
İst. IoT & Wearables Meet-up
-
 

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Copyright © 1999 - 2017, Umut Erkal. Bu materyal, "Creative Commons Public Licence" ile sunulmuştur.
Kaynak göstererek ve ücretsiz olarak, aynı şartlar altında paylaşabilir ve kullanabilirsiniz. | Kullanım Sözleşmesi