Android XMLPullParser ile XML Okuma ve Parçalama
ad area
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.util.Xml;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

import java.io.StringReader;

public class MainActivity extends AppCompatActivity {

    XmlPullParser xmlPullParser=null;
    XmlPullParserFactory factory=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try{
            xmlPullParser = Xml.newPullParser();
            factory = XmlPullParserFactory.newInstance();
            xmlPullParser = factory.newPullParser();
            xmlPullParser.setInput(new StringReader("<username>serifgungor</username><password>sifr3m1234*</password>"));
            int eventType = xmlPullParser.getEventType();
            String geciciUsername = "";
            String geciciPassword = "";
            String geciciIslem = "";

            while (eventType != XmlPullParser.END_DOCUMENT) {
                if (eventType == XmlPullParser.START_DOCUMENT) {
                    //Log.d("RESPONSE","Start document");
                } else if (eventType == XmlPullParser.END_DOCUMENT) {
                    //Log.d("RESPONSE","End document");
                } else if (eventType == XmlPullParser.START_TAG) {
                    geciciIslem = xmlPullParser.getName();
                } else if (eventType == XmlPullParser.END_TAG) {

                } else if (eventType == XmlPullParser.TEXT) {
                    if("username".equals(geciciIslem)){
                        geciciUsername = xmlPullParser.getText();
                    }
                    if("password".equals(geciciIslem)){
                        geciciPassword = xmlPullParser.getText();
                    }
                }
                eventType = xmlPullParser.next();
            }

            Log.d("RESPONSE","Kullanıcı Adı: " + geciciUsername);
            Log.d("RESPONSE","Şifre: " + geciciPassword);
        }catch (Exception e){

        }


    }
}

Kısaca açıklayacak olursak;

XmlPullParser ve XmlPullParserFactory sınıflarından birer nesne üretiyoruz. xmlPullParser'i Xml sınıfının bir kopyası olarak üretiyoruz. factory'i ise XmlPullParserFactory sınıfından türettik. xmlPullParser nesnesi, factory nesnesinin newPullParser metodu sayesinde dolduruluyor.

xmlPullParser nesnesinin içerisi ilk etapta boş, doldurabilmek için setInput metoduna argüman olarak xml string'i gönderiyoruz.

xmlPullParser'ın getEventType metodu ise bir tag'in açıldığı, kapandığı, tag içeriğinin okunduğu, xml dosyasının okunmaya başlandığı ve okunma işleminin bittiği durumları temsil ediyor.

Tabloda belirtecek olursak, getEventType metoduna tanımlanabilecek değerler şu şekilde;

XmlPullParser.START_DOCUMENT XML Dosyası okuma işlemine başlandı.
XmlPullParser.END_DOCUMENT XML Dosyası okuma işlemi bitti.
XmlPullParser.START_TAG Bir açılış tag'i okundu.
XmlPullParser.END_TAG Bir kapanış tag'i okundu.
XmlPullParser.TEXT Açılış ve kapanış tagleri arasında bir yazı okundu

İyi çalışmalar diliyorum

Bu makaleyi paylaşın:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın