Android--DOM解析XML

来源:互联网 发布:福利彩票分析软件 编辑:程序博客网 时间:2024/04/27 11:58

Person.java

package com.belmeng.xml;public class Person{private String id;private String name;private String age;public String getId(){return id;}public void setId(String id){this.id = id;}public String getName(){return name;}public void setName(String name){this.name = name;}public String getAge(){return age;}public void setAge(String age){this.age = age;}}


DomService.java

package com.belmeng.xml;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 DomService{public static List<Person> readXml(InputStream inputStream) throws Exception{List<Person> persons = new ArrayList<Person>();DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = builderFactory.newDocumentBuilder();Document document = builder.parse(inputStream);Element root = document.getDocumentElement();NodeList list = root.getElementsByTagName("person");for (int i = 0; i < list.getLength(); i++){Person person = new Person();Element personElement = (Element) list.item(i);person.setId(personElement.getAttribute("id"));NodeList nodeList = personElement.getChildNodes();for (int j = 0; j < nodeList.getLength(); j++){Node node = nodeList.item(j);if (node.getNodeType() == Element.ELEMENT_NODE){Element element = (Element) node;if ("name".equals(element.getNodeName())){String string = element.getFirstChild().getNodeValue();person.setName(string);} else if ("age".equals(element.getNodeName())){person.setId(element.getFirstChild().getNodeName());}}}persons.add(person);}return persons;}}


MainActivity.java

package com.belmeng.xml;import java.io.InputStream;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;/* * 使用SAX解析XML */public class MainActivity extends Activity{private Button read;private TextView textView;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);read = (Button) findViewById(R.id.read);textView = (TextView) findViewById(R.id.text);read.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v){// InputStream inputStream =// getResources().openRawResource(R.xml.person);InputStream inputStream = MainActivity.class.getResourceAsStream("person.xml");List<Person> persons;try{persons = DomService.readXml(inputStream);textView.setText(persons.get(0).getName());} catch (Exception e){// TODO Auto-generated catch blocke.printStackTrace();}}});}}


person.xml   //xml文件放到MainActivity.class同一个目录下面

<?xml version="1.0" encoding="UTF-8"?>  <persons>       <person id="23">              <name>wjh</name>              <age>25</age>       </person>       <person id="20">              <name>wjh2</name>              <age>30</age>       </person>  </persons>


 

原创粉丝点击