(二)Java解析XML:一个简单的解析XML文件的例子
先假设有如下格式的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文件的例子相关推荐
- JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...
用java模拟设计一个简单的"用户注册"程序.当用户输入用户名和密码时,单击"注 2020 - 9 - 26 TAG : 所有功能均已实现,如有不满意的地方我再修改imp ...
- JAVA编写的一个简单的Socket实现的HTTP响应服务器
JAVA编写的一个简单的Socket实现的HTTP响应服务器,看后就很容易理解Web服务器的原理了. package test.io;import java.net.*; import java.io ...
- 用java设计实现一个简单的动作冒险类游戏
用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...
- java设计游戏_用java设计实现一个简单的动作冒险类游戏
用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...
- java Swing 做一个简单的输入文本框
java Swing做一个简单的文本输入框, 新建一个SwingDemo类: // //java swing做一个简单的文本框 //Created by lee_1310 on 2019.03.29 ...
- java动作游戏教程_用java设计实现一个简单的动作冒险类游戏
用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...
- 在Java中搭建一个简单的MVC框架
搭建一个简单的Java MVC框架 一 . 前言 二. 代码实现 1. 思路分析 2. 代码实现 2.1 Controller注解 2.2 RequestMapping注解 2.3 UserContr ...
- JPA基础(二)之实现一个简单 JPA 例子
实现一个简单 JAP 例子 需要学习 JPA,首先需要把环境搭起来,这里选择实现 JPA 规范的持久层框架是 Hibernate,版本为 5.0.7.Final,并且采用 maven 进行依赖包的管理 ...
- JAVA——如何写一个简单的聊天框
这是上学期JAVA选修课课下的一道简单的线上家庭作业题,题目描述如下: 总的来说就是要按照它的描述写一个聊天室界面.由于是选修课要求不高,老师只要求我们写出大致界面即可不用实现具体功能,不过闲来无事我 ...
- 如何设计 Java 框架?– 一个简单的例子
您可能对框架的工作原理感到好奇?这里将做一个简单的框架示例来演示框架的思想. 框架的目标 首先,为什么我们需要一个框架而不是一个普通的库?框架的目标是定义一个流程,让开发人员根据个人需求实现某些功能. ...
最新文章
- Jeff Dean亲自揭秘谷歌下一代AI架构:通用、稀疏且高效
- Docker Swarm集群config集中管理配置文件
- linux io端口复用,Linux系统IO复用接口(select、poll、epoll)
- hls之m3u8、ts流格式详解
- 缩影和掠影_普查员的“酸苦甜” 社区人口普查工作掠影
- QT中让窗口屏幕居中的方法
- 恶意软件--》木马、病毒、蠕虫
- .net下操作XML的几篇文章(downmoon收集自MSDN)
- 第三章CDMA的原理与应用(2)
- java 7下载地址
- arcgis图像和坐标系统一致但不重合_分享∣Arcgis中62个常用技巧系列二(21-40技巧)...
- excel冻结窗口_excel怎么冻结窗口?excel冻结窗口怎么设置?
- php 操作 PSD,PHP中使用Imagick操作PSD文件实例
- 【论文解读--MPC控制】Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control
- OGRE 2.1简明扼要的分析
- Cannot prepare internal mirrorlist: No URLs in mirrorlist 【已经解决】
- cite space安装到高分辨率的电脑后界面太小,画面太小怎么办
- 《Fabric 的精简版白皮书》解读
- WFE和WFI的区别
- 明日方舟如何刷初始号,明日方舟如何刷初始号教程
热门文章
- 一个努力做程序员鼓励师的人
- 10% building 2/2 modules 0 active ERROR SyntaxError: Unexpected stringimport core-js/modules/es6.r
- 奇绩创坛2021秋季创业营开始报名
- 不加大资金投入,仅凭智能名片如何解决企业营销难题的?
- elasticsearch (一): Centos7 RPM 方式安装最新单机版elasticsearch版本7.10.2 并配置中文(ik)、拼音(pinyin)插件
- php格式的种子,php读取torrent种子文件内容的方法(测试可用)
- UE4 光照烘焙准备
- VCSEL激光器、SBD肖特基二极管最新研究成果
- Error Code: 1318. Incorrect number of arguments for PROCEDURE account_check.temp_i; expected 1, got
- webstorm关闭烦人的eslint语法检查