javaXML文件解析(三)DOM解析
来源:互联网 发布:java编程思想英文版 编辑:程序博客网 时间:2024/06/18 07:07
DOM解析XML文件时会议树的形式将xml文件保存到内存中去,允许用户遍历树,检索所需要的数据,因此在理解方式较SAX解析和pull解析直观,但是消耗内存比前者多
先来讲讲DOM为我们提供哪些API
//得到一个DOM解析工厂实例
DocumentBuilderFactory fatory = DocumentBuilderFactory.newInstance();
//从DOM工厂示例中获得DOM解析器
DocumentBuilder parser = fatory.newDocumentBuilder();
/*把要解析的xml文件,以输入流的方式加载到DOM解析器中
* Document对象代表了一个xml文档的模型树,所有的NODE节点都以一定的顺序排列
*/
Document doc = parser.parse(inputStream);
//获得Document对象中的所有person节点
doc.getElementsByTagName(“person”);
public class DOMXmlparser { public static List<Person> getXml(InputStream inputStream) throws Exception{ List<Person> list = null; //创建DOM工厂解析器 DocumentBuilderFactory fatory = DocumentBuilderFactory.newInstance(); //从DOM工厂示例中获得DOM解析器 DocumentBuilder parser = fatory.newDocumentBuilder(); /*把要解析的xml文件加载到DOM解析器中 * Document对象代表了一个xml文档的模型树,所有的NODE节点都以一定的顺序排列 */ Document doc = parser.parse(inputStream); NodeList nlist = null; //得到xml文件中的节点 try{ nlist = doc.getElementsByTagName("person"); } catch(Exception e){ e.printStackTrace(); } list = new ArrayList<Person>(); //遍历所有的节点 for(int i = 0;i<nlist.getLength();i++){ Element personElement = null; //Element personElement = (Element) nlist.item(i); Node personNode = nlist.item(i); //判断该节点是否是一个元素 if(personNode.getNodeType()==Node.ELEMENT_NODE){ personElement = (Element) personNode; } Person person = new Person(); String id=(String) personElement.getAttribute("id"); person.setId(Integer.parseInt(id)); //遍历子节点,也就是person下面的子节点 NodeList childList = ((Node) personElement).getChildNodes(); for(int j = 0 ;j<childList.getLength();j++){ Node childNode = childList.item(j); if(childNode.getNodeType()==Node.ELEMENT_NODE){ Element childElment = (Element) childNode; if("name".equals(((Node) childElment).getNodeName())) person.setName(((Node) childElment).getFirstChild().getNodeValue()); else if("age".equals(((Node) childElment).getNodeName())){ person.setAge(Integer.parseInt(((Node) childElment).getFirstChild().getNodeValue())); } } } list.add(person); } return list; }}
0 0
- javaXML文件解析(三)DOM解析
- javaXML文件解析(一) SAX解析
- javaXML文件解析(二)pull解析
- javaXML解析的俩种方法-----DOM-----SAX
- 常用的JavaXML解析技术
- DOM解析XML(三)
- DOM解析xml(三)
- DOM解析器 (三)
- DOM解析器 (三)
- java面向对象下:JavaXML解析技术
- xml系列(三)------DOM解析
- DOM解析XML文件
- xml文件解析-DOM
- dom解析xml文件
- DOM解析HTML文件
- DOM解析XML文件
- dom解析xml文件
- Dom解析XML文件
- 你还在为学文学理而纠结吗?(一秒解决此难题)
- Android中的沉浸式状态栏效果
- Oracle GoldenGate学习笔记
- 程序题——输出蛇形代码
- 编程珠玑 第1/2/3章
- javaXML文件解析(三)DOM解析
- hive的简单理解--笔记
- java三目运算符,带包路径类编译运行方式、块作用域、分支语句、循环
- 推荐一个好的博客下载工具
- C#回滚事务
- java 通过qq邮箱发邮件
- request跳转和response跳转的区别
- MySql的溢写命令--实例
- 12.16《采用 缓冲输入 、 输出字节流 来实现图片的拷贝》