JAva使用DOM读取XML数据(解析)

Posted 雪山非猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAva使用DOM读取XML数据(解析)相关的知识,希望对你有一定的参考价值。

原来一切都是有套路的

使用DOM解析XML文档步骤

1、创建解析器工厂对象 DocumentBuildFactory对象

2、由解析器工厂对象创建解析器对象,即DocumentBuilder对象

3、由解析器对象对指定XML文件进行解析,构建相应的DOM树,创建Document对象,生成一个Document对象

4、以Document对象为起点对DOM树的节点进行查询

5、使用Document的getElementsByTagName方法获取元素名称,生成一个NodeList集合,

6、遍历集合

实例代码如下:

import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/*
 * 解析phones.xml文件
 */
public class ParseXML {
    public static void main(String[] arg){
        //1、创建解析器工厂对象 DocumentBuildFactory对象
        DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
        DocumentBuilder db=null;
        Document dom=null;
        try {
            //2、由解析器工厂对象创建解析器对象,即DocumentBuilder对象
            db=dbf.newDocumentBuilder();
            //3、由解析器对象对指定XML文件进行解析,构建相应的DOM树,创建Document对象,生成一个Document对象
            dom=db.parse("phones.xml");
            //4、以Document对象为起点对DOM树的节点进行查询
            //得到所有brand节点信息,是个集合
            /*
             * getElementsByTagName(String tagname) 
          按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList。
             */
            NodeList brandlist=dom.getElementsByTagName("Brand");
            //遍历所有brand
            for(int i=0;i<brandlist.getLength();i++){
                Node brand=brandlist.item(i);
                //转成元素,获取brand的元素值
                Element brandelement=(Element)brand;
                String brandname=brandelement.getAttribute("name");
                System.out.println(brandname);
                //查找Type
                NodeList typelist=dom.getElementsByTagName("Type");
                for(int j=0;j<typelist.getLength();j++){
                    Node typenode=typelist.item(j);
                    Element typename=(Element)typenode;
                    String typen=typename.getAttribute("name");
                    System.out.println("\t"+typen);
                }
            }
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            System.out.println("解析结束");
        }
        
    }
}

 

以上是关于JAva使用DOM读取XML数据(解析)的主要内容,如果未能解决你的问题,请参考以下文章

Android之DOM解析XML

Android之DOM解析XML

Java里面怎么解析xml文件的内容

java--xml文件读取(DOM)

java 读取数据库数据转化输出XML输出在jsp页面

java解析xml的几种方式哪种最好?