和上一篇一样,使用同样的数据点击打开链接
DOM将XML中的元素如下分解
要想取数据,可以参考如下方法;
具体实现代码如下:
public class DomPersonService {
public static List<Person> getPersons(InputStream inputStream) throws Exception{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(inputStream);
//获取node列表
NodeList personNodeList = document.getDocumentElement().
getElementsByTagName("person");
List<Person> list = new ArrayList<Person>();
for (int i = 0; i < personNodeList.getLength(); i++) {
Element personElement = (Element) personNodeList.item(i);
int id = Integer.valueOf(((Element) personElement).getAttribute("id"));
Person person = new Person();
person.setId(id);//获取id
//getAttribute可以获取属性(id),getChildNodes可以获取文本
NodeList childNodes = ((Node) personElement).getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++) {
if(childNodes.item(j).getNodeType() == Node.ELEMENT_NODE){
if("name".equals(childNodes.item(j).getNodeName())){
String name = childNodes.item(j).getFirstChild().getNodeValue();
person.setName(name);
}else if("age".equals(childNodes.item(j).getNodeName())){
String age = childNodes.item(j).getFirstChild().getNodeValue();
person.setAge(new Short(age));
Log.i("TAG", person.toString());
}
}
}
list.add(person);
}
inputStream.close();
return list;
}
}
最后总结果还是