01-DOM解析XML
来源:互联网 发布:云数据库的特点是什么 编辑:程序博客网 时间:2024/06/08 05:38
自己动手编写了一个person.xml文件,下面简单的说一下怎么用DOM解析该XML文件。
person.xml文件的 内容如下:
<?xml version="1.0" encoding="UTF-8"?><People> <person id="1"> <name>Bob</name> <age>22</age> <gender>male</gender> </person> <person id="2"> <name>John</name> <age>23</age> <gender>female</gender> </person> <person id="3"> <name>张三</name> <age>12</age> <gender>男</gender> </person></People>
新建一个java工程项目,这里命名为DOMXml项目,新建一个包名为com.xbb.domxml,在包下新建一个java文件,XmlParseByDom.java,然后将person.xml文件copy到项目目录下,项目结构如下图示:
PersonParseByDom.java的内容如下:
package com.xbb.domxml;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public class PersonParseByDom {public static void main(String[] args) {//DocumentBuilderFactory和DocumentBuilder都是一个抽象类DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();DocumentBuilder db ;//Document是一个接口Document doc;try {db = dbf.newDocumentBuilder();//绑定解析person.xml文件doc = db.parse("person.xml");//获取person.xml文件中的所有<person>节点,返回类型为NodeList节点集合,这是一个接口,里面封装了两个方法,//一个是方法是public Node item(int index);返回指定位置的节点;另一个方法是public int getLength();返回节点结合包含 //节点数。NodeList personList = doc.getElementsByTagName("person");//打印出person节点数System.out.println("共有" + personList.getLength() + "个person点");//遍历每个person节点for (int i = 0; i < personList.getLength(); i++) {//获取第i个person节点Node person = personList.item(i);System.out.println("-------------------");//打印person节点的id属性System.out.println("第"+i+"个person的属性"+person.getAttributes().item(0));//获取person节点的子节点集合,此处注意空格也属于一个子节点,类型为Node.TEXT_NODE;而我们需要的是Node.ELEMENT_ //NODE类型的子节点NodeList personChilds = person.getChildNodes();System.out.println("共有"+personChilds.getLength()+"个子元素");for (int j = 0; j < personChilds.getLength(); j++) {if (personChilds.item(j).getNodeType() == Node.ELEMENT_NODE) {//打印每个子节点名字和值System.out.println(personChilds.item(j).getNodeName()+":"+personChilds.item(j).getFirstChild().getNodeValue());}}}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
代码注释已经解释的比较详细。
最后输出结果为:
介绍就到这里了。
0 0
- 01-DOM解析XML
- XML DOM---解析xml dom
- 【XML】DOM解析XML
- 解析xml dom 解析
- xml解析 Dom解析
- dom解析xml
- dom解析 xml
- dom解析xml
- 解析xml之--DOM
- Dom解析XML文档
- DOM解析XML文件
- dom解析xml
- dom解析xml
- xml文件解析-DOM
- JAVA解析XML DOM
- DOM解析XML
- JAVA解析XML DOM
- XML DOM解析
- java图片旋转 90度
- 随笔
- 分治策略算法之最大字数组和问题
- 编程之美2015资格赛 题目3 : 基站选址
- OpenCV中GPU模块使用
- 01-DOM解析XML
- JAVA Web开发过程中遇见的各种Exception 总结(待续)
- 的考虑将规范非
- 《JavaScript高级程序设计》BOM
- 四大因素决定 浅析iOS为什么比安卓流畅
- 第8章总结-思维导图 with XMind
- 将例3.13中的Time类声明为Date类的友元类(第三章第十一题)
- 掌握java中的三种代码块的定义及使用
- 主机字节序(大小端判断)及网络字节序