Android xmlpull 方式解析xml文件

1.新建一个xml文件,放在res/xml目录下

1 <?xml version="1.0" encoding="utf-8"?>

2 <citys>

3     <city count="1400"  name="深圳">广东</city>

4     <city count="1500"  name="广州">广东</city>

5     <city count="1000"  name="武汉">湖北</city>

6 </citys>

2.布局文件代码如下:

 1 <?xml version="1.0" encoding="utf-8"?>

 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

 3     android:layout_width="fill_parent"

 4     android:layout_height="fill_parent"

 5     android:orientation="vertical" >

 6 

 7     <Button  8         android:id="@+id/btn"

 9         android:layout_width="wrap_content"

10         android:layout_height="wrap_content"

11         android:text="@string/btnmsg" />

12 

13     <EditText 14         android:id="@+id/edit"

15         android:layout_width="fill_parent"

16         android:layout_height="wrap_content" />

17 

18 </LinearLayout>

3.后台java解析代码如下:

 1 package ymw.main;  2 

 3 import java.io.IOException;  4 

 5 import org.xmlpull.v1.XmlPullParserException;  6 

 7 import ymw.main.R;  8 

 9 import android.app.Activity; 10 import android.content.res.XmlResourceParser; 11 import android.os.Bundle; 12 import android.view.View; 13 import android.widget.Button; 14 import android.widget.EditText; 15 

16 public class XmlResourceParserSampleActivity extends Activity { 17  @Override 18     public void onCreate(Bundle savedInstanceState) { 19         super.onCreate(savedInstanceState); 20  setContentView(R.layout.main); 21         Button btn = (Button) findViewById(R.id.btn); 22         final EditText edit = (EditText) findViewById(R.id.edit); 23         btn.setOnClickListener(new View.OnClickListener() { 24  @Override 25             public void onClick(View v) { 26                 XmlResourceParser xpr = XmlResourceParserSampleActivity.this

27                         .getResources().getXml(R.xml.myxml);// 找到xml文件

28                 StringBuilder sb = new StringBuilder(); 29                 try { 30                     // 循环解析

31                     while (xpr.getEventType() != XmlResourceParser.END_DOCUMENT) { 32                         if (xpr.getEventType() == XmlResourceParser.START_TAG) { 33                             // 获取标签的标签名

34                             String name = xpr.getName(); 35                             if (name.equals("city")) { 36                                 sb.append("城市名称:" + xpr.getAttributeValue(1) 37                                         + "\n"); 38                                 sb.append("人口:"

39                                         + xpr.getAttributeValue(null, "count") 40                                         + "万\n"); 41                                 try { 42                                     sb.append("所属省份:" + xpr.nextText() + "\n\n"); 43                                 } catch (IOException e) { 44  e.printStackTrace(); 45  } 46  } 47  } 48                         try { 49  xpr.next(); 50                         } catch (IOException e) { 51  e.printStackTrace(); 52  } 53  } 54  edit.setText(sb.toString()); 55                 } catch (XmlPullParserException e) { 56  e.printStackTrace(); 57  } 58  } 59  }); 60  } 61 

62 }

 

你可能感兴趣的:(android)