Java获取XML节点总结之读取XML文档节点
个人博客地址:http://www.ijianmi.com/
dom4j是Java的XML API,用来读写XML文件的。目前有很多场景中使用dom4j来读写xml的。
要使用dom4j开发,需要下载导入dom4j相应的jar文件。
官网下载:http://www.dom4j.org/dom4j-1.6.1/
github下载:http://dom4j.github.io/
下载解压之后如图所示:
我们只需要把dom4j-1.6.1.jar文件构建到我们开发项目中就可以了。
下面就以Eclipse创建java项目的构建方法为例说明:
声明:本Java项目的开发环境JDK1.8,Eclipse版本 Neon.1 Release (4.6.1)
首先创建一个demo项目:
在demo项目中创建一个lib文件,把dom4j-1.6.1.jar文件拷贝到lib中,然后右键dom4j-1.6.1jar文件。如图所示:
点击Add to Bulid Path即可构建到项目中去了。
导入成功如图所示:
在项目开发的过程中可以参考docs文件夹的(帮助文档),找到index.html打开,点击Quick start可以通过帮助文档进行学习 dom4j进行xml的解析。
如图所示:
下面我将以详细例子去介绍Java操作xml文件,文件名为exmple.java。
- package vastsum;
- import java.io.File;
- import java.util.Iterator;
- import java.util.List;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.Element;
- import org.dom4j.Node;
- import org.dom4j.io.SAXReader;
- /**
- * 读取下xml文档,获得document对象。
- * 本文为xml连载第一篇,以下代码可以直接运行,结尾附上源码下载地址。
- */
- class exmple {
- public static void main(String[] args) throws DocumentException
- {
- SAXReader reader = new SAXReader();
- Document document = reader.read(new File("./src/contact.xml"));
- /**
- * 节点对象的操作方法
- */
- //获取文档根节点
- Element root = document.getRootElement();
- //输出根标签的名字
- System.out.println(root.getName());
- //获取根节点下面的所有子节点(不包过子节点的子节点)
- List<Element> list = root.elements() ;
- //遍历List的方法
- for (Element e:list){
- System.out.println(e.getName());
- }
- //获得指定节点下面的子节点
- Element contactElem = root.element("contact");//首先要知道自己要操作的节点。
- List<Element> contactList = contactElem.elements();
- for (Element e:contactList){
- System.out.println(e.getName());
- }
- //调用下面获取子节点的递归函数。
- getChildNodes(root);
- //获得当前标签下指定名称的第一个子标签
- Element conElem = root.element("contact");
- System.out.println(conElem.getName());
- //获得更深层次的标签(一层一层的获取)
- Element nameElem = root.element("contact").element("name");
- System.out.println(nameElem.getName());
- }
- //递归查询节点函数,输出节点名称
- private static void getChildNodes(Element elem){
- System.out.println(elem.getName());
- Iterator<Node> it= elem.nodeIterator();
- while (it.hasNext()){
- Node node = it.next();
- if (node instanceof Element){
- Element e1 = (Element)node;
- getChildNodes(e1);
- }
- }
- }
- }
下面是对应的xml文件,文件名为contact.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <contactList>
- <contact id="001" class="style">
- <name>张三</name>
- <age>20</age>
- <phone>134222223333</phone>
- <email>zhangsan@qq.com</email>
- <qq>432221111</qq>
- </contact>
- <contact id="002">
- <name>李四</name>
- <age>20</age>
- <phone>134222225555</phone>
- <email>lisi@qq.com</email>
- <qq>432222222</qq>
- </contact>
- <contactTwo>
- <name>王五</name>
- <age>32</age>
- <phone>465431341</phone>
- <emali>af@qq.com</emali>
- <qq>46164694</qq>
- </contactTwo>
- <test>测试</test>
- <test>其他用途</test>
- </contactList>
两个文件的目录如题所示:
Java获取XML节点总结之读取XML文档节点的更多相关文章
- 深入理解DOM节点类型第七篇——文档节点DOCUMENT
× 目录 [1]特征 [2]快捷访问 [3]文档写入 前面的话 文档节点document,隶属于表示浏览器的window对象,它表示网页页面,又被称为根节点.本文将详细介绍文档节点document的内 ...
- Java获取路径方法&相对路径读取xml文件方法
(1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...
- java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...
- 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)
原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...
- java+反射+多线程+生产者消费者模式+读取xml(SAX)入数据库mysql-【费元星Q9715234】
java+反射+多线程+生产者消费者模式+读取xml(SAX)入数据库mysql-[费元星Q9715234] 说明如下,不懂的问题直接我[费元星Q9715234] 1.反射的意义在于不将xml tag ...
- 【XML】利用Dom4j读取XML文档以及写入XML文档
Dom4j简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能 ...
- 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题
问题 一个用Spring建的java项目,在Eclipse或idea中运行正常,为什么打包后运行出现如下错误呢? 2019/07/10/19:04:07 WARN [main] org.springf ...
- java中读取word文档里的内容
package com.cn.peitest.excel.word; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- 突发奇想之:源码及文档,文档包括源码---xml格式的源码,文档源码合并;注释文档化,文档代码化;
目前源码和文档一般都是分开的,我在想为什么 源码不就是最好的文档么? 但是一般源码都是文本text的,格式化需要人为统一规范,所以源码中的文档在现实中不是那么的易于实践. 而且 源码 不能包括图片.附 ...
- xml基础之二(XML结构【2】)DTD文档模版
xml基础之二(XML结构[2])DTD文档模版 xml 模板 文档结构 我们知道XML主要用于数据的存储和传输,所以无论是自定义还是外部引用DTD模板文档,都是为了突出数据的存储规范.DTD(文档 ...
随机推荐
- 延时调用--deferred.js原码分析
有些时候,我们需要等待上一个操作完成之后,才能进行下一步的操作.比如Ajax实现自动提交表单操作的时候,程序需要等待,一旦有返回结果了,则继续进行一下步操作. 这时deferred.js这个库就产生了 ...
- C/C++,彩色图像小游戏。
这里声明,这个游戏是由本人,在大一暑假自作的第二个小游戏,转载请注明原帖地址,谢谢! 所有图片都是我一个人用ps搞出来的,比较简单.........毕竟不是学图像制作的,请体谅!另外,图片 不放出来了 ...
- Ftp上传下载 C#
public class MyFtpClass { private readonly string _destIp; private readonly string _userName; privat ...
- AngularJS------认识AngularJS
之前在C#中也经常使用MVC开发模式,对其的使用有一定的了解,但是现在需要学习AngularJS,这是纯前台的JS代码,那么为什么需要学习这个呢,就是想将验证这里全部在前台执行,不需要在后台代码里面出 ...
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机上开发仪表盘控件
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的"S ...
- html5 前端图片处理(预览、压缩、缩放)
现在手机图片是越来越大了,上传图片流量耗费巨大.同时预览也是一个问题,所以利用HTML5 file和canvas来解决这个问题. var upload = { _o: null,//对象id _aut ...
- System.Diagnostics.Process.Start的妙用
我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案 ...
- SharePoint创建web application出现“The password supplied with the username was not correct”错误的解决方法
平台环境 Windows Server 2012 R2 Standard, SharePoint Server 2010, Microsoft SQL Server 2012 (SP1) 问题描述 在 ...
- 简谈asp.net下的异步加载
具体我本身大概用的就有两种,需配合JQ. 第一种,直接通过AJAX去请求页面:例如, 1:dataType必须是html或者Text格式, 2:Type:必须是'Post'请求 3:后台Load事件必 ...
- java堆和栈的区别
java 的内存分为两类,一类是栈内存,一类是堆内存.栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这 ...