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 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。