কম্পিউটার টিউটোরিয়াল

এন্ড্রয়েডে কোটলিন ব্যবহার করে XMLPullParser দিয়ে XML পার্স করার পদ্ধতি

XmlPullParser ব্যবহার করে XML ডেটা পার্সিং

এই উদাহরণটি দেখায় কিভাবে কোটলিন ব্যবহার করে এন্ড্রয়েডে XMLPullParser ব্যবহার করে assets ফোল্ডার থেকে XML ফাইল পার্স করা যায় এবং ListView-এ দেখানো যায়।

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project এ যান এবং প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট XML ফাইল কনফিগার করুন

res/layout/activity_main.xml ফাইলে নিচের কোড যোগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:dividerHeight="1dp" />

</LinearLayout>

ধাপ ৩: row.xml লেআউট ফাইল তৈরি করুন

res/layout/row.xml ফাইল তৈরি করুন:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp">

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/background_dark"
        android:textSize="16sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tvDesignation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tvName"
        android:layout_marginTop="7dp"
        android:textColor="#343434"
        android:textSize="12sp" />

    <TextView
        android:id="@+id/tvLocation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/tvDesignation"
        android:layout_alignBottom="@+id/tvDesignation"
        android:layout_alignParentEnd="true"
        android:textColor="@android:color/background_dark"
        android:textSize="16sp" />

</RelativeLayout>

ধাপ ৪: assets/model.xml ফাইল তৈরি করুন

assets ফোল্ডার তৈরি করে model.xml ফাইলে নিচের কোড যোগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <users>
        <user>
            <name>Sehwag</name>
            <designation>Vice Captain</designation>
            <location>Delhi</location>
        </user>
        <user>
            <name>Ashwin</name>
            <designation>Off Spin Bowler</designation>
            <location>Chennai</location>
        </user>
        <user>
            <name>Dhoni</name>
            <designation>Captain</designation>
            <location>Ranchi</location>
        </user>
    </users>
</resources>

ধাপ ৫: MainActivity.kt ফাইলে লজিক লিখুন

import android.os.Bundle
import android.widget.ListAdapter
import android.widget.ListView
import android.widget.SimpleAdapter
import androidx.appcompat.app.AppCompatActivity
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserException
import org.xmlpull.v1.XmlPullParserFactory
import java.io.IOException

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        try {
            val userList = ArrayList<HashMap<String?, String?>>()
            var user: HashMap<String?, String?>? = HashMap()
            val lv: ListView = findViewById(R.id.listView)
            val inputStream = assets.open("model.xml")
            val parserFactory: XmlPullParserFactory = XmlPullParserFactory.newInstance()
            val parser: XmlPullParser = parserFactory.newPullParser()
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true)
            parser.setInput(inputStream, null)

            var tag: String?
            var text = ""
            var event = parser.eventType

            while (event != XmlPullParser.END_DOCUMENT) {
                tag = parser.name
                when (event) {
                    XmlPullParser.START_TAG -> if (tag == "user") user = HashMap()
                    XmlPullParser.TEXT -> text = parser.text
                    XmlPullParser.END_TAG -> when (tag) {
                        "name" -> user!!["name"] = text
                        "designation" -> user!!["designation"] = text
                        "location" -> user!!["location"] = text
                        "user" -> if (user != null) userList.add(user)
                    }
                }
                event = parser.next()
            }

            val adapter: ListAdapter = SimpleAdapter(this@MainActivity, userList, R.layout.row,
                arrayOf("name", "designation", "location"),
                intArrayOf(R.id.tvName, R.id.tvDesignation, R.id.tvLocation))
            lv.adapter = adapter
        } catch (e: IOException) {
            e.printStackTrace()
        } catch (e: XmlPullParserException) {
            e.printStackTrace()
        }
    }
}

ধাপ ৬: AndroidManifest.xml আপডেট করুন

সাধারণ ম্যানিফেস্ট কনফিগারেশন যথেষ্ট।

অ্যাপ্লিকেশন চালানোর পদ্ধতি

ডিভাইস সংযুক্ত করে Run করুন। XML ডেটা পার্স হয়ে লিস্টভিউতে নাম, পদবী এবং লোকেশন দেখাবে।

  1. অ্যান্ড্রয়েড ফ্র্যাগমেন্টে Context ব্যবহারের পদ্ধতি

  2. অ্যান্ড্রয়েড টুলবারে SearchView ব্যবহার করার পদ্ধতি

  3. অ্যান্ড্রয়েডে XMLPullParser ব্যবহার করে XML পার্স করার পদ্ধতি

  4. Android-এ Volley লাইব্রেরি ব্যবহার করে JSON পার্স করার পদ্ধতি