演示使用DOM技术如何解析指定XML

原创 2015年11月17日 23:19:02
import java.io.FileInputStream;
import java.io.InputStream;

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;

/**
 * 演示使用DOM技术如何解析指定XML
 *
 * @version 1.0
 *
 *
 */
public class DOMParseXML {
    public static void main(String[] args) {
        // 通过DocumentBuilderFactory抽象类的工厂方法newInstance()创建DOM解析器的工厂实例
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

        try {
            // 通过DocumentBuilderFactory实例的静态方法newDocument()得到DOM解析器
            DocumentBuilder buider = factory.newDocumentBuilder();
            // 把需要解析的XML文档转化为输入流,以便DOM解析器能够进行解析
            InputStream is = new FileInputStream("E://examGrade.xml");
            // 解析XML文档的输入流,得到一个Document
            Document doc = buider.parse(is);
            // 通过Document得到XMl文档的根节点
            Element root = doc.getDocumentElement();
            // DOM技术采用NodeList存放Node的所有子节点,所以我们可以使用循环的方式得到节点下的所有子节点
            NodeList exams = root.getChildNodes();
            if (exams != null) {
                System.out.println("解析结果为:\n");
                System.out.println("\t 课程\t学生姓名\t 成绩");
                // 使用DOM技术解析XMl文档-遍历子节点
                System.out.println(exams.getLength()+"\t");
                for (int i = 0; i < exams.getLength(); i++) {
                    Node exam = exams.item(i);
                    if (exam.getNodeType() == Node.ELEMENT_NODE) {
                        String courseName = exam.getNodeName();
                        // 输出课程名
                        //记得转义字符"/n"也算字节点
                        System.out.print(courseName + "\t");
                        for (Node node = exam.getFirstChild(); node != null; node = node
                                .getNextSibling()) {
                            if (node.getNodeType() == Node.ELEMENT_NODE) {
                                if (node.getNodeName().equals("examineeName")) {
                                    String stuName = node.getFirstChild()
                                            .getNodeValue();
                                    // 输出学生姓名
                                    System.out.print(stuName + "\t");
                                }
                                if (node.getNodeName().equals("grade")) {
                                    String grade = node.getFirstChild()
                                            .getNodeValue();
                                    // 输出学生成绩
                                    System.out.println(grade + "\t");
                                }
                            }
                        }
                    }

                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用DOM技术来对XML文档进行解析范例

张三 男 21 李四 女 20 王五 男 23 ...

XML解析技术和使用Jaxp对xml文档进行dom解析

用dom和sax对xml文档进行解析,可以使用已开发的xml解析开发包,我们直接调用即可。xml解析开发包有:Jaxp(最差)、Jdom(一般)、dom4j(最好)。 JAXP: 定义一个xml文档...
  • syf1970
  • syf1970
  • 2016年05月14日 18:17
  • 148

Android演示使用DOM解析xml文件

Android下解析xml文件的三种方式分别是:SAX、DOM、PULL,本次主要讲解如何使用DOM方式: 这里使用的测试xml文件内容如下: 0 FreeDemo 1 ...

android实现xml解析技术——Sax、Pull、Dom

每种技术工作原理        Dom:Dom解析器用树形结构存储文档结构,会将所有的内容加载到内存中。如果,文档过大会消耗大量的内存。                     由于数据全部加载到内存...

实现XML解析的几种技术(SAX、Pull、Dom三种方式)

【Android】实现XML解析的几种技术(SAX、Pull、Dom三种方式)(转)  2012-12-11 17:25:51|  分类: Android |  标签:android  ...

[Java]XML数据的请求和DOM技术解析

Ron Ngai 有只花猫叫花姑娘有个码农叫Ron Ngai [Java]XML数据的请求和DOM技术解析   刚刚看到一条微博 今天距离2009级离校倒计时还有...

1月10日之day02--xml解析技术 dom4j

xml学习 xml语法 元素、属性、注释 文档声明: 注释: Dom模型---文档对象模型 |--Node |--Document 文档对象 |--Element标签 |--Attr 属性 |--T...
  • ddhdzt
  • ddhdzt
  • 2015年01月10日 16:33
  • 244

Java中四种XML解析技术【JSP、SAX、JDOM、DOM4J】

在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML...
  • hj7jay
  • hj7jay
  • 2016年06月23日 09:41
  • 1014

XML - JAXP技术 - DOM解析

DOM解析的基本思路:     1、将整个XML文件一次性读入内存     2、将整个XML看做一棵树     3、XML中的每一个标签,属性,文本都看做是树上的一个结点     4、然后可以...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:演示使用DOM技术如何解析指定XML
举报原因:
原因补充:

(最多只允许输入30个字)