关闭

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

145人阅读 评论(0) 收藏 举报
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();
        }

    }
}

0
0
查看评论

XML-解析技术(dom解析,sax解析)

XML解析方式分为两种:dom和sax    dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式。    sax: (Simple API for XML) 不是官方标准,但它是 XML ...
  • WillCold
  • WillCold
  • 2013-10-25 08:50
  • 1202

Java 应用DOM方式解析XML文件

引入java为啥需要解析XML的方法?xml的优势:它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的...
  • qq_23473123
  • qq_23473123
  • 2016-05-15 13:53
  • 2053

用dom解析如下xml文件内容

用dom解析如下xml文件内容 成都春熙路 成都盐市口 成都布鲁明顿 解析之后把所有年龄大于18的人的信息存储在List对象中, User类:有三个成员变量(String name,int age String addr) 并遍历输出li...
  • miachen520
  • miachen520
  • 2016-06-30 18:31
  • 768

dom解析xml字符串

xmlstr=23002403010斜土路1nullnull0030101300240RZRQ信用业务部0nullnull00rzrq4300240信用交易部null0nullnull10xyjyb33002403020武宁路1nullnull1030205300240102莲前西营业部0nulln...
  • justdoit_potato
  • justdoit_potato
  • 2015-12-01 17:56
  • 1506

DOM解析XML-详细

一、DOM方式的解析原理 DOM模式解析XML,是把整个XML文档当成一个对象来处理,会先把整个文档读入到内存里。是基于树的结构,通常需要加载整文档和构造DOM树,然后才能开始工作。 二、优缺点及适用情况 优点:a、由于整棵树在内存中,因此可以对xml文档随机访问b、可以对xm...
  • fznf1010
  • fznf1010
  • 2012-10-09 22:08
  • 27421

Java解析xml文档之DOM解析--CRUD(增删改查)

DOM-Document Object Model-文档对像模型。是w3c组织处理xml的一种方式。特点:一次将所有数据全部加载到内存中。 对xml文档中的每一个节点都当成一个Node对像处理。包括元素、文本、属性。 org.w3c.dom包中的Document,Element,Node。 非...
  • new___Smile
  • new___Smile
  • 2016-06-29 16:35
  • 1940

Python:Dom解析XML文件(读XML)

这一篇文章接着前一篇来接续讲解如何使用Dom方式操作XML数据,这一篇文章主要介绍如何解析(parse)XML文件,本文实例XML文件是上一篇的生成的文件,我们看看能不能完整的读出来,这个XML文件内容如下: XML/HTML代码 xml version="1...
  • zhou191954
  • zhou191954
  • 2012-12-03 22:36
  • 1173

Dom解析XML

DOM(Document Object Model):W3C组织推荐的处理XML的标准接口.  http://www.w3.org/DOM/DOMTR.html  DOM特点:首先将整个XML文档读取到内存中才能进行某些操作,如果XML文档很大,则会影响性能。&#...
  • u013516966
  • u013516966
  • 2015-01-29 02:41
  • 915

dom解析方式对xml文档进行操作

java就业培训教程 张孝祥 36.2元 javascript就业培训教程 张孝祥 36.2元 package com.rj.xml...
  • qq_30638831
  • qq_30638831
  • 2016-04-07 14:45
  • 726

Java解析XML文件方法之一(DOM)

DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文...
  • zp357252539
  • zp357252539
  • 2015-08-29 08:45
  • 1375
    个人资料
    • 访问:26290次
    • 积分:1106
    • 等级:
    • 排名:千里之外
    • 原创:85篇
    • 转载:3篇
    • 译文:3篇
    • 评论:1条
    最新评论