准备工作:

1创建java工程

2创建xml文档。

完成后看下面代码:

import org.w3c.dom.*;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory; public class Main { public static void main(String[] args) throws Exception {
//创建一个文档解析器工厂
DocumentBuilderFactory fac= DocumentBuilderFactory.newInstance(); //用上面的工厂创建一个文档解析器
DocumentBuilder builder=fac.newDocumentBuilder(); //用上面的文档解析器解析一个文件放到document对象里
Document doc=builder.parse("src/server.xml"); //获取文档中节点名称为Listener的所有节点,并返回一个节点集合
NodeList listenerList=doc.getElementsByTagName("Listener");
System.out.println("一共有"+listenerList.getLength()+"个节点"); //遍历整个集合(把所有标签名为Listener的节点一个一个拿出来
for (int i=0;i<listenerList.getLength();i++){
System.out.println("===========这是第"+(i+1)+"个listener节点的开始:===========");
//把集合里的每一个listener节点分别拿出来
Node node=listenerList.item(i);
//再把上一个节点中的所有属性拿出来
NamedNodeMap nodeMap= node.getAttributes();
System.out.println("第"+(i+1)+"个节点一共有"+nodeMap.getLength()+"个属性"); //遍历所有属性
for(int j=0;j<nodeMap.getLength();j++){
Node node1=nodeMap.item(j);
System.out.println("第"+(j+1)+"个属性的名称是"+node1.getNodeName());
System.out.println("第"+(j+1)+"个属性的值是"+node1.getNodeValue());
}
//获取节点的所有子节点,注意会把所有换行符也解析为子节点
NodeList childNode=node.getChildNodes(); //遍历所有子节点
for(int k=0;k<childNode.getLength();k++){
if(childNode.item(k).getNodeType()==Node.ELEMENT_NODE){
//这个过滤条件是只将标签节点保留(换行符的节点就删去)
}
System.out.println("===========这是第"+(i+1)+"个节点的结束:===========");
}
}
}

为了方便记忆,在这里拆解一下。我们的目的是解析一个xml文档,所以就需要一个工具。这个工具就叫做DocumentBuilder类的对象,那么这个工具怎么来的呢?是从工厂里面生产出来的,那么工厂怎么来的呢?就得先创建一个工厂:DocumentBuilderFactory。在本例中解析了xml文档中所有名为Listener标签的所有属性。

本人其实非常渴望研究更深入的东西,但现在实在是刚毕业,么办法,所以只能研究研究一些场景怎么用,怎么解析xml文档,至于到底内部是如何实现的,希望各位读者有时间一定要深究下去,这里可能涉及到java的动态代理和工厂模式。

注意:1.<book>红楼梦</book>,当获取到book节点时,其节点名称是book,值是null!!!。因为解析过程中把红楼梦作为book节点的子节点解析。所以要想获取红楼梦,就必须在book节点处获取第一个子节点。也可以用book节点获取textContent(获取该节点下及其子节点孙节点所有的文本节点内容)。

java使用document解析xml文件的更多相关文章

  1. Java 创建过滤器 解析xml文件

    今天写了一个过滤器demo,现在是解析actions.xml文件,得到action中的业务规则:不需要导入任何jar包 ActionFilter过滤器类: package accp.com.xh.ut ...

  2. java使用dom4j解析xml文件

    关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...

  3. Java是如何解析xml文件的(DOM)

    Java解析xml文件 在Java程序中读取xml文件的过程也称为"解析xml文件": 解析的目的: 获取 节点名和节点值 获取 属性名.属性值. 四中解析方式: DOM SAX ...

  4. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

  5. java 使用SAX解析xml 文件

    http://www.cnblogs.com/allenzheng/archive/2012/12/01/2797196.html 为了学习方便,忘博主勿究

  6. JAVA中使用DOM解析XML文件

    XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...

  7. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  8. java解析XML文件

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...

  9. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

随机推荐

  1. [Java核心技术笔记]并发

    Runnable Runnable接口是函数式接口 //Runnable接口 public interface Runnable { void run(); } //用lambda表达式创建实例 Ru ...

  2. 105. Construct Binary Tree from Preorder and Inorder Traversal根据前中序数组恢复出原来的树

    [抄题]: Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume ...

  3. PHP并发之Swoole

    <?php /** * Created by PhpStorm. * User: zhezhao * Date: 2016/10/20 * Time: 10:51 */ $url_arr = a ...

  4. ES6自我总结笔记(阮一峰ES6入门)

    [let和const命令] 1.var的作用域是函数体内,不是块级作用域 2.let是更完美的var,let的变量的作用是块级作用域 3.let声明的全局变量不是全局对象属性,不可以通过window. ...

  5. Linux驱动之输入子系统简析

    输入子系统由驱动层.输入子系统核心.事件处理层三部分组成.一个输入事件,如鼠标移动.键盘按下等通过Driver->Inputcore->Event handler->userspac ...

  6. 批量屏蔽符合条件的IP地址《目前仅测Centos 6 版本》

    使用办法:可以将下面的sh保存到一个单独的文件中,比如ipad.sh,然后再编辑获取IP地址列表中的那段.最终的结果是需要直接获取到IP地址,一行一个,可以有多个文件,一行一个,进行重定向到指定的IP ...

  7. Netty学习路线总结

    序 之前开过品味性能系列.Mysql学习系列,颇为曲高和寡.都是讲理论,很少有手把手深入浅出的文章.不过确实我就这脾气,文雅点的说法叫做"伪雅",下里巴人叫做"装逼&qu ...

  8. 动态iframe 分享

    function createIframe() { var i = document.createElement("iframe"); i.src = "/RSK/Rsk ...

  9. 1-JRE与JDK等知识

  10. python入门之两种方法修改文件内容

    1.占硬盘修改 import os file_name="兼职.txt" new_file_name="%s.new".% file_name old_str= ...