DOM解析XML文件

和上一篇一样,使用同样的数据点击打开链接

DOM解析XML文件_第1张图片

DOM将XML中的元素如下分解

DOM解析XML文件_第2张图片

要想取数据,可以参考如下方法;

DOM解析XML文件_第3张图片

具体实现代码如下:

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;
	}
}
最后总结果还是


你可能感兴趣的:(android,dom)