首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

Android读取XML资料(DOM)

2012-08-24 
Android读取XML文件(DOM)?package com.xiva.serviceimport java.io.InputStreamimport java.util.ArrayL

Android读取XML文件(DOM)

?

package com.xiva.service;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;import com.xiva.domain.Person;/** * @decription 适合解析小存储的xml文件 * @author XIVA * */public class DOMService {public static List<Person> readXML(InputStream is) throws Exception{List<Person> personList = new ArrayList<Person>();DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();DocumentBuilder dombuilder        = domFactory.newDocumentBuilder();Document document = dombuilder.parse(is);Element root      = document.getDocumentElement();NodeList nodes    = root.getElementsByTagName("person");for(int i=0;i<nodes.getLength();i++){Element element = (Element) nodes.item(i);Person person = new Person();person.setId(new Integer(element.getAttribute("id")));NodeList childNodes = element.getChildNodes();for(int j=0;j<childNodes.getLength();j++){Node childNode = (Node) childNodes.item(j);if(childNode.getNodeType() == Element.ELEMENT_NODE){Element childElement = (Element) childNode;childElement.getLocalName();childElement.getNodeName();childElement.getNodeValue();childElement.getTagName();if("age".equals(childElement.getTagName())){person.setAge(childElement.getFirstChild().getNodeValue());}else if("name".equals(childElement.getTagName())){person.setPersonName(childElement.getFirstChild().getNodeValue());}}}personList.add(person);}return personList;}}

?完整代码见附件,DOM与SAX解析的区别在于SAX解析需要一个handler,并触发handler里面的所有事件;而DOM的解析主要需要分析NodeList里面所含值!

?

热点排行