先假设有如下格式的XML文件:

<test name="test"><service id="create"><class path="d:\develop\hello.java"></class></service><service id="destroy"><class path="d:\develop\hello.java"></class></service>
</test>

需要获取calss标签中名为path的节点的信息。

按照上一篇文章所讲的,首先需要创建一个Document对象:

final Logger logger = Logger.getLogger(getClass().getName());final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();try{final DocumentBuilder builder = factory.newDocumentBuilder();logger.debug("create builder success.");doc = builder.parse(new File(this.path));logger.debug("parse xml file success");}catch (final ParserConfigurationException e){logger.error("Constructor document builder error : " + e);}catch (final SAXException e){logger.error("parse file error : " + e);}catch (final IOException e){logger.error("parse file error : " + e);}

然后再获取元素节点:

Element root = doc.getDocumentElement();

这是一种便捷的访问XML中的文档元素的子节点的方式,此时该DOM中所有的节点都可以通过root来获取。接下来就是对XML的解析:

final NodeList nl = parent.getChildNodes();for (int i = 0, size = nl.getLength(); i < size; i++){final Node node = nl.item(i);if (node.getNodeType() == Node.ELEMENT_NODE){final String value = node.getAttributes().getNamedItem("id").getNodeValue();System.out.println(value);}for (Node index = node.getFirstChild(); index != null; index = index.getNextSibling()){if (index.getNodeType() == Node.ELEMENT_NODE){System.out.println(index.getAttributes().getNamedItem("path").getNodeValue());}}}

前面没有提到NodeList,NodeList接口提供对节点的有序集合的抽象,在上面的例子中,Document对象的元素的所有子节点都包含在NodeList对象nl中,即我们可以通过for循环来遍历所有的子节点。

最终的输出格式:

create
d:\develop\hello.java
destroy
d:\develop\hello.java

(二)Java解析XML:一个简单的解析XML文件的例子相关推荐

  1. JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...

    用java模拟设计一个简单的"用户注册"程序.当用户输入用户名和密码时,单击"注 2020 - 9 - 26 TAG : 所有功能均已实现,如有不满意的地方我再修改imp ...

  2. JAVA编写的一个简单的Socket实现的HTTP响应服务器

    JAVA编写的一个简单的Socket实现的HTTP响应服务器,看后就很容易理解Web服务器的原理了. package test.io;import java.net.*; import java.io ...

  3. 用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  4. java设计游戏_用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  5. java Swing 做一个简单的输入文本框

    java Swing做一个简单的文本输入框, 新建一个SwingDemo类: // //java swing做一个简单的文本框 //Created by lee_1310 on 2019.03.29 ...

  6. java动作游戏教程_用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  7. 在Java中搭建一个简单的MVC框架

    搭建一个简单的Java MVC框架 一 . 前言 二. 代码实现 1. 思路分析 2. 代码实现 2.1 Controller注解 2.2 RequestMapping注解 2.3 UserContr ...

  8. JPA基础(二)之实现一个简单 JPA 例子

    实现一个简单 JAP 例子 需要学习 JPA,首先需要把环境搭起来,这里选择实现 JPA 规范的持久层框架是 Hibernate,版本为 5.0.7.Final,并且采用 maven 进行依赖包的管理 ...

  9. JAVA——如何写一个简单的聊天框

    这是上学期JAVA选修课课下的一道简单的线上家庭作业题,题目描述如下: 总的来说就是要按照它的描述写一个聊天室界面.由于是选修课要求不高,老师只要求我们写出大致界面即可不用实现具体功能,不过闲来无事我 ...

  10. 如何设计 Java 框架?– 一个简单的例子

    您可能对框架的工作原理感到好奇?这里将做一个简单的框架示例来演示框架的思想. 框架的目标 首先,为什么我们需要一个框架而不是一个普通的库?框架的目标是定义一个流程,让开发人员根据个人需求实现某些功能. ...

最新文章

  1. Jeff Dean亲自揭秘谷歌下一代AI架构:通用、稀疏且高效
  2. Docker Swarm集群config集中管理配置文件
  3. linux io端口复用,Linux系统IO复用接口(select、poll、epoll)
  4. hls之m3u8、ts流格式详解
  5. 缩影和掠影_普查员的“酸苦甜” 社区人口普查工作掠影
  6. QT中让窗口屏幕居中的方法
  7. 恶意软件--》木马、病毒、蠕虫
  8. .net下操作XML的几篇文章(downmoon收集自MSDN)
  9. 第三章CDMA的原理与应用(2)
  10. java 7下载地址
  11. arcgis图像和坐标系统一致但不重合_分享∣Arcgis中62个常用技巧系列二(21-40技巧)...
  12. excel冻结窗口_excel怎么冻结窗口?excel冻结窗口怎么设置?
  13. php 操作 PSD,PHP中使用Imagick操作PSD文件实例
  14. 【论文解读--MPC控制】Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control
  15. OGRE 2.1简明扼要的分析
  16. Cannot prepare internal mirrorlist: No URLs in mirrorlist 【已经解决】
  17. cite space安装到高分辨率的电脑后界面太小,画面太小怎么办
  18. 《Fabric 的精简版白皮书》解读
  19. WFE和WFI的区别
  20. 明日方舟如何刷初始号,明日方舟如何刷初始号教程

热门文章

  1. 一个努力做程序员鼓励师的人
  2. 10% building 2/2 modules 0 active ERROR SyntaxError: Unexpected stringimport core-js/modules/es6.r
  3. 奇绩创坛2021秋季创业营开始报名
  4. 不加大资金投入,仅凭智能名片如何解决企业营销难题的?
  5. elasticsearch (一): Centos7 RPM 方式安装最新单机版elasticsearch版本7.10.2 并配置中文(ik)、拼音(pinyin)插件
  6. php格式的种子,php读取torrent种子文件内容的方法(测试可用)
  7. UE4 光照烘焙准备
  8. VCSEL激光器、SBD肖特基二极管最新研究成果
  9. Error Code: 1318. Incorrect number of arguments for PROCEDURE account_check.temp_i; expected 1, got
  10. webstorm关闭烦人的eslint语法检查