آموزش XML Parser در برنامه نویسی اندروید
آموزش XML Parser در برنامه نویسی اندروید
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد آموزش XML Parser در برنامه نویسی اندروید صحبت خواهیم کرد.
XML مخفف Extensible Mark-up Language است. XML یک قالب بسیار محبوب است و معمولاً برای به اشتراک گذاری داده ها در اینترنت استفاده می شود. در این درس نحوه تجزیه فایل XML و استخراج اطلاعات لازم از آن توضیح داده شده است.
اندروید سه نوع تجزیه کننده XML را ارائه می دهد که عبارتند از DOM ، SAX و XMLPullParser.
در میان همه آنها XMLPullParser را توصیه می شود زیرا کارآمد و آسان برای استفاده است.
نابراین ما می خواهیم از XMLPullParser برای تجزیه XML استفاده کنیم.
اولین قدم شناسایی زمینه های داده XML مورد علاقه شماست.
به عنوان مثال. در XML آورده شده در زیر ما علاقه مند به دریافت فقط temperature هستیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?xml version="1.0"?> <current> <city id="2643743" name="London"> <coord lon="-0.12574" lat="51.50853"/> <country>GB</country> <sun rise="2013-10-08T06:13:56" set="2013-10-08T17:21:45"/> </city> <temperature value="289.54" min="289.15" max="290.15" unit="kelvin"/> <humidity value="77" unit="%"/> <pressure value="1025" unit="hPa"/> </current> |
عناصر XML
یک فایل xml از اجزای بسیاری تشکیل شده است. در اینجا تعریف اجزای یک فایل XML و شرح آنها است.
- Prolog
یک فایل XML با یک prolog شروع می شود. اولین خطی که شامل اطلاعات مربوط به یک فایل است، پرولوگ است
- Events
یک فایل XML رویدادهای زیادی دارد. رویداد می تواند اینگونه باشد. سند شروع می شود، سند به پایان می رسد، شروع تگ، پایان تگ و متن
- Text
به غیر از تگ ها و رویدادها، و فایل xml نیز حاوی متن ساده است.
- Attributes
ویژگی های اضافی یک تگ مانند مقدار و غیره هستند
XML – Parsing
در مرحله بعدی ، ما شی object XMLPullParser را ایجاد خواهیم کرد، اما برای ایجاد آن ابتدا شی object XmlPullParserFactory را ایجاد می کنیم و سپس برای ایجاد XMLPullParser متد ()newPullParser آن را فراخوانی می کنیم. نحو آن در زیر آورده شده است:
1 2 |
private XmlPullParserFactory xmlFactoryObject = XmlPullParserFactory.newInstance(); private XmlPullParser myparser = xmlFactoryObject.newPullParser(); |
مرحله بعدی شامل مشخص کردن فایلی برای XmlPullParser است که حاوی XML است.
این می تواند یک فایل باشد یا می تواند یک جریان باشد. در مورد ما این یک جریان است. نحو آن در زیر آورده شده است:
1 |
myparser.setInput(stream, null); |
آخرین مرحله تجزیه XML است. یک فایل XML از رویدادها ، نام ، متن و غیره AttributesValue تشکیل شده است.
بنابراین XMLPullParser عملکرد جداگانه ای برای تجزیه هر یک از اجزای پرونده XML دارد. نحو آن در زیر آورده شده است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int event = myParser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { String name=myParser.getName(); switch (event){ case XmlPullParser.START_TAG: break; case XmlPullParser.END_TAG: if(name.equals("temperature")){ temperature = myParser.getAttributeValue(null,"value"); } break; } event = myParser.next(); } |
به غیر از این متدها، متدهای دیگری نیز برای تجزیه بهتر فایلهای XML توسط این کلاس ارائه شده است. این متد ها در زیر ذکر شده است:
- ()getAttributeCount
این متد فقط تعداد ویژگی های تگ شروع فعلی را برمی گرداند
- (getAttributeName(int index
این متد نام ویژگی مشخص شده با مقدار ایندکس را برمی گرداند
- ()getColumnNumber
این متد مقدار ستون فعلی را برمی گرداند، از 0 شروع می شود.
- ()getDepth
این متد عمق فعلی عنصر را برمی گرداند.
- ()getLineNumber
شماره خط فعلی را با شروع از 1 برمی گرداند.
- ()getNamespace
این متد نام فضای URI عنصر فعلی را برمی گرداند.
- ()getPrefix
این متد پیشوند عنصر فعلی را برمی گرداند
- ()getName
این متد نام تگ را برمی گرداند
- ()getText
این متد متن را برای آن عنصر خاص برمی گرداند
- ()isWhitespace
این متد بررسی می کند که آیا رویداد فعلی TEXT فقط نویسه های فضای سفید را شامل می شود یا خیر.
مثال
در اینجا مثالی وجود دارد که استفاده از XML Parser در برنامه نویسی اندروید را نشان می دهد. این برنامه به شما امکان تجزیه XML را می دهد.
برای آزمایش این مثال ، می توانید آن را روی دستگاه واقعی یا شبیه ساز اجرا کنید.
شرح مراحل
1- شما برای ایجاد یک برنامه اندروید تحت یک پکیج com.example.sairamkrishna.myapplication از Android studio استفاده خواهید کرد.
2- برای اضافه کردن کد لازم، فایل src / MainActivity.java را تغییر دهید.
3- res / layout / activity_main را تغییر دهید تا مولفه های XML مربوطه اضافه شود
4- یک پرونده XML جدید در Assets Folder / file.xml ایجاد کنید
5- AndroidManifest.xml را تغییر دهید تا اجازه اینترنت لازم را اضافه کنید
6- برنامه را اجرا کنید و دستگاه اندرویدی در حال اجرا را انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را بررسی کنید
در زیر محتوای پرونده فعالیت اصلی تغییر یافته MainActivity.java است
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
package com.example.sairamkrishna.myapplication; import java.io.InputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { TextView tv1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv1=(TextView)findViewById(R.id.textView1); try { InputStream is = getAssets().open("file.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(is); Element element=doc.getDocumentElement(); element.normalize(); NodeList nList = doc.getElementsByTagName("employee"); for (int i=0; i<nList.getLength(); i++) { Node node = nList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { Element element2 = (Element) node; tv1.setText(tv1.getText()+"\nName : " + getValue("name", element2)+"\n"); tv1.setText(tv1.getText()+"Surname : " + getValue("surname", element2)+"\n"); tv1.setText(tv1.getText()+"-----------------------"); } } } catch (Exception e) {e.printStackTrace();} } private static String getValue(String tag, Element element) { NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes(); Node node = nodeList.item(0); return node.getNodeValue(); } } |
در زیر محتوای Assets / file.xml آمده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?xml version="1.0"?> <records> <employee> <name>Sairamkrishna</name> <surname>Mammahe</surname> <salary>50000</salary> </employee> <employee> <name>Gopal </name> <surname>Varma</surname> <salary>60000</salary> </employee> <employee> <name>Raja</name> <surname>Hr</surname> <salary>70000</salary> </employee> </records> |
در زیر محتوای اصلاح شده xml res / layout / activity_main.xml آمده است
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> |
در زیر محتوای فایل AndroidManifest.xml آمده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> |
بیایید برنامه را اجرا کنیم. من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.
- نگاهی کلی به برنامه نویسی اندروید
- تنظیمات محیط در برنامه نویسی اندروید
- معماری برنامه نویسی اندروید
- اجزای برنامه در برنامه نویسی اندروید
- Hello World در برنامه نویسی اندروید
- سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
- فعالیت در برنامه نویسی اندروید
- سرویس در برنامه نویسی اندروید
- گیرنده های پخش در برنامه نویسی اندروید
- ارائه دهنده محتوا در برنامه نویسی اندروید
- قطعات در برنامه نویسی اندروید
- Intent و فیلتر در برنامه نویسی اندروید
- طرح بندی رابط کاربری در برنامه نویسی اندروید
- کنترل های رابط کاربری در برنامه نویسی اندروید
- مدیریت رویدادها در برنامه نویسی اندروید
- استایل و تم ها در برنامه نویسی اندروید
- اجزای سفارشی در برنامه نویسی اندروید
- کشیدن و رها کردن در برنامه نویسی اندروید
- نوتیفیکیشن ها در برنامه نویسی اندروید
- سرویس های مبتنی بر مکان در برنامه نویسی اندروید
- ارسال ایمیل در برنامه نویسی اندروید
- ارسال پیامک در برنامه نویسی اندروید
- تماس های تلفنی در برنامه نویسی اندروید
- انتشار برنامه اندروید
- آموزش Alert Dialog در برنامه نویسی اندروید
- انیمیشن در برنامه نویسی اندروید
- ضبط صدا در برنامه نویسی اندروید
- مدیریت صدا در برنامه نویسی اندروید
- آموزش Auto Complete در برنامه نویسی اندروید
- بهترین شیوه ها در برنامه نویسی اندروید
- بلوتوث در برنامه نویسی اندروید
- استفاده از دوربین در برنامه نویسی اندروید
- کلیپ بورد در برنامه نویسی اندروید
- فونت سفارشی در برنامه نویسی اندروید
- پشتیبان گیری از داده ها در برنامه نویسی اندروید
- ابزارهای توسعه دهنده در برنامه نویسی اندروید
- آموزش شبیه ساز در برنامه نویسی اندروید
- اتصال به فیس بوک در برنامه نویسی اندروید
- حرکات لمسی در برنامه نویسی اندروید
- آموزش گوگل مپ در برنامه نویسی اندروید
- افکت های تصویر در برنامه نویسی اندروید
- Image Switcher در برنامه نویسی اندروید
- حافظه داخلی در برنامه نویسی اندروید
- آموزش کار با JetPlayer در برنامه نویسی اندروید
- JSON Parser در برنامه نویسی اندروید
- ارتباط با LinkedIn در برنامه نویسی اندروید
- نوار پیشرفت Spinner در برنامه نویسی اندروید
- بومی سازی در برنامه نویسی اندروید
- صفحه Login در برنامه نویسی اندروید
- MediaPlayer در برنامه نویسی اندروید
- Multitouch در برنامه نویسی اندروید
- Navigation در برنامه نویسی اندروید
- اتصال به اینترنت در برنامه نویسی اندروید
- NFC در برنامه نویسی اندروید
- PHP و MYSQL در برنامه نویسی اندروید
- Progress Circle دربرنامه نویسی اندروید
- Progress Bar در برنامه نویسی اندروید
- Push Notification در برنامه نویسی اندروید
- RenderScript در برنامه نویسی اندروید
- RSS Reader در برنامه نویسی اندروید
- Screen cast در برنامه نویسی اندروید
- SDK Manager در برنامه نویسی اندروید
- سنسورها در برنامه نویسی اندروید
- Session در برنامه نویسی اندروید
- Shared Preferences در برنامه نویسی اندروید
- پروتکل SIP در برنامه نویسی اندروید
- Spelling Checker در برنامه نویسی اندروید
- پایگاه داده SQLite در برنامه نویسی اندروید
- Support Library در برنامه نویسی اندروید
- تست برنامه های اندروید
- قابلیت متن به گفتار در برنامه نویسی اندروید
- TextureView در برنامه نویسی اندروید
- اتصال به توییتر در برنامه نویسی اندروید
- طراحی رابط کاربری در برنامه نویسی اندروید
- الگوهای رابط کاربری در برنامه نویسی اندروید
- تست رابط کاربری در برنامه نویسی اندروید
- آموزش WebView در برنامه نویسی اندروید
- آموزش wifi در برنامه نویسی اندروید
- آموزش ویجت در برنامه نویسی اندروید
دیدگاه شما