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里面所含值!

更多相关文章

  1. android TelephonyManager
  2. android 亮屏及屏幕解锁代码
  3. android studio 3.0 报错 Unable to find method 'com.android.b
  4. Android(安卓)视频缩略图之MediaMetadataRetriever
  5. Android(安卓)使用内容解析者往短信数据库里插入一条数据
  6. Android(安卓)采用Pull解析XML内容 【学习记录】
  7. Android(安卓)ImageSwitcher
  8. android 反射解析xml文件成为java对象
  9. android 按钮按下时改变字体颜色

随机推荐

  1. Android(安卓)读取MCC, MNC
  2. android设置属性
  3. Android设置支持多种分辨率
  4. 收集android的三个小tip
  5. 监听Android应用程序是否卸载成功
  6. Android(安卓)Debugging
  7. Android(安卓)SurfaceView 的基本应用
  8. 让ImageView全部适应ScrollView
  9. Android(安卓)文件存储 和 权限管理
  10. Android(安卓)Style样式的定义