Dom解析
来源:互联网 发布:知乎 鹅妈妈童谣 编辑:程序博客网 时间:2024/04/29 07:09
第一步,在res目录下新建一个raw文件夹,然后new一个.xml文件如 tt.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="24">
<name>LiSi</name>
<age>22</age>
</person>
<person id="29">
<name>ShanJi</name>
<age>26</age>
</person>
</persons>
第二步,在src下新建一个实体类Person 内容如下:
public class Person {
private Integer id;
private String name;
private Short age;
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;
}
public Short getAge() {
return age;
}
public void setAge(Short age) {
this.age = age;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
第三步新建一个用来解析XML的类如DomParserService内容如下:
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
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;
public class DomParserService {
public static List<Person> getPersons(InputStream inStream) throws Exception{
ArrayList<Person> persons = new ArrayList<Person>();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(inStream);
Element root = document.getDocumentElement();
NodeList personNodes = root.getElementsByTagName("person");
for(int i=0;i<personNodes.getLength();i++){
Element personElement = (Element) personNodes.item(i);
int id = new Integer(personElement.getAttribute("id"));
Person person = new Person();
person.setId(id);
NodeList childNodes = personElement.getChildNodes();
for(int y=0;y<childNodes.getLength();y++){
if(childNodes.item(y).getNodeType()==Node.ELEMENT_NODE){
if("name".equals(childNodes.item(y).getNodeName())){
String name = childNodes.item(y).getFirstChild().getNodeValue();
person.setName(name);
}else if("age".equals(childNodes.item(y).getNodeName())){
String age = childNodes.item(y).getFirstChild().getNodeValue();
person.setAge(new Short(age));
}
}
}
persons.add(person);
}
inStream.close();
return persons;
}
}
第四步在MainActivity中回调DomParserService类中的方法。
import java.io.InputStream;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
testDom();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static final String TAG="MainActivity";
public void testDom() throws Exception{
InputStream is = getResources().openRawResource(R.raw.tt);
List<Person> list = DomParserService.getPersons(is);
for(Person person:list){
String result = person.toString();
Log.d(TAG,"result==__"+result);
}
}
}
- dom解析
- DOM 解析
- dom解析
- Dom解析
- DOM解析
- dom解析
- DOM 解析
- DOM解析
- dom解析
- Dom 解析
- DOM解析
- dom解析
- dom 解析
- dom 解析
- Dom解析
- DOM解析
- dom解析
- Dom解析
- 【安卓开发】关于错误: Your project contains error(s),please fix them before running your application解决办法
- Floyd判圈算法
- cJson库的使用
- 学习笔记(十二)使用网络技术
- 关于cocos2d-x中init()方法和OnEnter方法的区别
- Dom解析
- 关于在Struts2的Action中使用domain模型接收参数的问题
- 内核中的kmalloc函数详解
- Memcached 一致性hash实现
- Spring 使用@ComponentScan扫描注解包
- 使用SQLite
- win10 JDK安装图解
- 使用开源imageLoader优化listview加载大量本地图片的demo
- MyEclipse下要给主函数传递参数问题