DOM解析XML文件1-ArrayAdapter_simple_list_item_1布局
1.新建名为domxmls的Android Application Project
2.User.Java
package com.example.domain;
public class User {
private Integer id;
private String name;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(Integer id, String name) {
super();
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}
- 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
- 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
3.users.xml—-保存在assets文件夹中不会被编译
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<id>1</id>
<name>chj</name>
</user>
<user>
<id>2</id>
<name>bc</name>
</user>
<user>
<id>3</id>
<name>wmm</name>
</user>
<user>
<id>4</id>
<name>yxh</name>
</user>
<user>
<id>5</id>
<name>hl</name>
</user>
<user>
<id>1</id>
<name>chj</name>
</user>
<user>
<id>2</id>
<name>bc</name>
</user>
<user>
<id>3</id>
<name>wmm</name>
</user>
<user>
<id>4</id>
<name>yxh</name>
</user>
<user>
<id>5</id>
<name>hl</name>
</user>
<user>
<id>1</id>
<name>chj</name>
</user>
<user>
<id>2</id>
<name>bc</name>
</user>
<user>
<id>3</id>
<name>wmm</name>
</user>
<user>
<id>4</id>
<name>yxh</name>
</user>
<user>
<id>5</id>
<name>hl</name>
</user>
</users>
- 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
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 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
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
4.MainActivity.java
注意:这里采用的是ListView的simple_list_item_1布局
package com.example.domxml;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import com.example.domain.User;
public class MainActivity extends Activity {
private List<User> users = new ArrayList<User>();
//声明控件对象 视图V
private ListView lv_users;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取控件对象
lv_users=(ListView) findViewById(R.id.lv_users); //视图 jsp html
try {
// dom解析 users.xml asserts目录中
domParser();
//定义要显示的数组 Model
String names[] = new String[users.size()];
for(int i=0;i<users.size();i++){
//用户名存储到names数组中
names[i]=users.get(i).getName();
}
//适配器 控制层 C
ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names);
//设置适配器
lv_users.setAdapter(adapter);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 解析方法
*
* @throws ParserConfigurationException
* @throws IOException
* @throws SAXException
*/
private void domParser() throws ParserConfigurationException, IOException,
SAXException {
// 1.创建DocumentBuilderFactory对象
DocumentBuilderFactory builderFactory = DocumentBuilderFactory
.newInstance();
// 2.通过工厂对象获取DocumentBuilder
DocumentBuilder builder = builderFactory.newDocumentBuilder();
//
// 3 获取要解析的xml文件 对应的输入流
InputStream is = getAssets().open("users.xml");
// 4.利用DocumentBuilder的parse方法获取解析的users.xml的document对象
Document document = builder.parse(is);
// 5.处理解析
// 1.获取文档的跟节点 users
Element root = document.getDocumentElement();
// 2.获取当前根节点下面所有user节点的集合
NodeList nodeList = root.getElementsByTagName("user");
// 遍历孩子节点
for (int i = 0; i < nodeList.getLength(); i++) {
// 获取具体的孩子节点
Node node = nodeList.item(i); // user
// 创建user对象
User user = new User();
// 获取user节点的所有孩子节点 id name
NodeList nlist = node.getChildNodes();
// 遍历孩子节点
for (int index = 0; index < nlist.getLength(); index++) {
// 获取具体的孩子节点
Node n = nlist.item(index);
// 判断该节点的名称是否是id
if (n.getNodeName().equals("id")) {
// 设置user的id值
user.setId(Integer.valueOf(n.getTextContent()));
// 判断该节点的名称是否是name
} else if (n.getNodeName().equals("name")) {
// 设置name值
user.setName(n.getTextContent());
}
}
// 添加到集合中
users.add(user);
}
}
}
- 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
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 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
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
5.在activity_main.xml中添加ListView控件
<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"
tools:context="${relativePackage}.${activityClass}" >
<ListView
android:id="@+id/lv_users"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
6.显示效果

浙公网安备 33010602011771号