准备工作:

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(获取该节点下及其子节点孙节点所有的文本节点内容)。

转载于:https://www.cnblogs.com/xiaoao/p/9612928.html

java使用document解析xml文件相关推荐

  1. 使用document解析xml文件

    在慕课上课时,看到可以使用document来解析xml文件,把上课的代码放出来,先记录一下. 大概步骤如下: 1.使用DocumentBuilderFactory 创建对象后再创建DocumentBu ...

  2. 【java】jdom解析xml文件

    java中有四种分别解析xml文件.分别是,DOM,SAX,DOM4J,JDOM四种.我第一篇就介绍用Jdom解析XML.本人觉得这四种学习其中一种即可.其余三中解析思想差不了多少.况且这四种介绍优缺 ...

  3. java使用DOM4j解析XML文件

    1.简介 dom4j是java中的XML API,性能优异.功能强大.开放源代码. 也是所有解析XML文件方法中最常用的! 2.代码实操 准备需要j的ar包添加到lib目录下,dom4j-2.1.1. ...

  4. Java中DOM4J解析xml文件浅析

      DOM4J解析它是JDOM的一种智能分支.它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持.XML Schema支持以及用于大文档或流化文档的基于事件的处理.它还提供了构建文档表 ...

  5. java中DOM解析xml文件

    本文介绍了如何利用DOM(即Document Object Model文档对象模型)解析xml文件. 首先有一个xml文件: <?xml version=\"1.0\" en ...

  6. 最简单的Document解析xml文件

    解析项目中的person.xml文件 Java代码块 package com.test1;import org.w3c.dom.Document; import org.w3c.dom.Node; i ...

  7. java sax解析xml_【转】java使用sax解析xml文件

    从下面这个url搬运.http://hck.iteye.com/blog/1175762 不过程序略有改动. 关于sax(搬自百科) SAX,全称Simple API for XML,既是指一种接口, ...

  8. 在java中在线解析XML文件内容

    这里的天气属性有很多,可以根据自己的需求获取天气属性 这里用到了org.json的jar包,因为要使用XML属性解析数据,还有alibab.JAONObject的jar包  /*** 天气预报-更新* ...

  9. java document解析xml_[XML]在Java中用Document解析XML实例

    ------showByCondition输出结果------- e01 name:张三 tel:5128 email:txq512@sina.com e02 name:meixin tel:5252 ...

  10. java在线打开xml文件_java实现简单解析XML文件功能示例

    本文实例讲述了java实现简单解析XML文件功能.分享给大家供大家参考,具体如下: package demo; import java.io.File; import java.io.IOExcept ...

最新文章

  1. rot90--矩阵旋转
  2. 根据ip地址获得天气预报
  3. python连接高斯数据库_Python加载数据并执行多高斯fi
  4. RegularExpressions(2) RegularExpressions 支持的正则表达式语法
  5. C++中 vector(容器)的用法
  6. f2fs学习笔记 - 1. f2fs概述
  7. php程序的完整路径和文件名,php从完整文件路径中分离文件目录和文件名的方法...
  8. PPT设置自动生成页码
  9. Vue3 中定义ts 对象
  10. 联想台式机Windows 7系统设置双显示器输出
  11. 春江水暖鸭先知,不破楼兰誓不还
  12. 基于 ZYNQ 的无线超声数据传输及显示系统的实现
  13. 【VisionMaster 行业应用案例】第二讲 多相机定位引导应用
  14. HiPER月光网吧宽带安全网关接入解决方案(转)
  15. NVIDIA NCCL 源码学习(九)- 单机内ncclSend和ncclRecv的过程
  16. 隆重推荐Gloo:旨在成为您房间装饰亮点的时尚无线充电站
  17. 背靠百度,度小满金融越来越稳
  18. uniapp使用输入框固定在底部键盘弹起把输入框挡住问题
  19. mysql企业备份工具(MEB)之mysqlbackup安装及使用
  20. Python,地理地图可视化:plotly绘制mapbox地图城市中心点经纬度marker标记

热门文章

  1. RabbitMQ三种Exchange
  2. scope=“prototype”和scope=“session”
  3. eclipse svn设置忽略文件
  4. Struts2---ActionContext和ServletActionContext小结
  5. 内层元素设置position:relative后父元素overflow:hidden overflow:scroll失效 解决方法
  6. mysql与nagios的结合使用
  7. STL 算法罗列 (转)
  8. vb集合类接收子类事件时,给集合类赋值应注意的一个定义
  9. 2021-08-25
  10. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [9] 决策树