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;
@Override
public 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()
{
@Override
public 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 block
e.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>