Kata pengantar
Saat mempelajari kode Sumber Lapisan Kerangka Android, Android menggunakan XMLPullParser untuk menyelesaikan kode sumber file XML. Oleh karena itu, di sini juga penggunaan xmlpullparser.
Xml
XML (Extensible Markup Language) Nama Cina adalah bahasa tag yang dapat diskalakan. Mark mengacu pada simbol informasi yang dapat dipahami komputer.
menggunakan
Desain XML menggunakan transmisi dan membawa informasi data.
struktur
Setiap dokumen XML dimulai dengan Kata Pengantar XML. Baris kode ini memberi tahu parser atau browser. Namun, nama elemen root ditentukan oleh jenis dokumen atau garis besar XML.
Xmlpullparser
Tarik Parsing XML didasarkan pada file XML yang didorong oleh acara. Parser tarik menyediakan empat jenis analisis acara: start_document (dokumen awal), end_document Saat Anda berada di elemen tertentu, Anda dapat menghubungi metode gettattributeValue () untuk mendapatkan nilai atribut. Mari kita analisis melalui contoh.
File contoh XML
Kode file sampel XML yang perlu diuraikan adalah sebagai berikut:
<? Versi XML = "1.0" encoding = "UTF-8"?> <Colleagues> <colleague id = "1"> <name> Sedu </name> <mage> 24 </an. Sex> </colorague> <kolega id = "2"> <name> lulu </name> <te> 28 </age> <ceks> girl </sex> </colleague id = "3"> <name> Chen Shan </name> <mage> 26 </anam> <seks> anak laki -laki </sex> </coleague> </rekan kerja>
Parser xmlpullparser
Paket Com.example.shake; Impor org.xmlpull.v1.xmlpullparsexception; {Daftar <Kolega> Kolega = ArrayList baru <); Kolega pengembalian;} coba {// Metode 1: Gunakan android.util.xml disediakan oleh Android arser parser = xml.newpullparser (); ); (EventType! = Xmlpullparser.ecument) {switch pe) {case xmlpullparser.start_document: break; Nilai Node Atribut Melalui GetTattributeValue (i) */ string name = parser.getName (); (Null, "id"));} else if ("name" .quals (names)) {if (colorague! = Null) {colorague.setname (parser.nexttext ());}} lain jika ("usia" .equals (name)) {if (colorague! = null) {colleage.setage (integer.parseint (parser.nexttext ());}} lain jika ("seks" .equals (name)) {if (colleag! = Null) {colorague.setsex (parser.nexttext ());} break; Null;} eventType = parser.next ();} lreamer.close ();} catch (xmlpullparsexception e) {// lakukan apapun} catch (ioException e) {// tidak ada apa -apa} return rekan;}}Di antara mereka, definisi kelas kolega relatif sederhana, dan kodenya adalah sebagai berikut:
paket com.example.shakedemo; Usia;} public void setage (int usia) {this.age = age;} public string getName () {) d setName (name string) {this.name = name;} public string getsex () {return sex;} public Void setSex (string sex) {this.sex = sex;} @Override public string toString () {return "id is" + id + ", nama adalah" + name + ", sex is" + sex;}}