package dom4j_read;

import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; /**
* 读取xml的标签
* getRootElement():获取根标签
* getName():获取标签名称
* element("XX"):获取第一个XX名的子标签
* elements("XX"):获取所有XX名的子标签
* elements():获取所有标签
* element().element(). ~~~:可以多次套用
*
* @author Administrator
*
*/
public class Demo02 {
public static void main(String[] args) throws Exception {
// 创建xml解析器对象
SAXReader reader = new SAXReader(); Document doc = reader.read(new File("./src/contact.xml")); // System.out.println(doc); /*
* 读取标签
*/
// 1.1 读取根标签
Element rootElem = doc.getRootElement();
System.out.println(rootElem); // 1.2 获取标签名称
System.out.println(rootElem.getName()); // 1.3 获取第一个子标签
Element conElem = rootElem.element("contact");
System.out.println(conElem); // 1.4获取所有同名的子标签(指定名字)
List<Element> list = rootElem.elements("contact");
// 遍历List
// 几种方式?
// 1)传统for循环
/*
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i));
}
*/ // 2)foreach循环
for(Element e : list) {
System.out.println(e);
}
System.out.println("--------------------------");
// 3)迭代器
/*
Iterator<Element> it = list.iterator();
while(it.hasNext()) {
Element e = it.next();
System.out.println(e);
}
*/ // 1.5 获取所有子标签(不指定名称)
List<Element> eList = rootElem.elements();
for(Element e : eList) {
System.out.println(e);
}
System.out.println("--------------------------");
// 1.6 拿到第一个contact标签的name标签
Element nameElem = rootElem.element("contact").element("name"); System.out.println(nameElem); }
}

xml中,结构如下:

<?xml version="1.0" encoding="gbk"?>
<contact-list>
<contact id="001" name="eric">
<name>张三</name>
<gender>男</gender>
<phone>134001114</phone>
<email>zhangsan@qq.com</email>
<address>成都</address>
</contact>
<contact id="002">
<name>李四</name>
<gender>男</gender>
<phone>134001115</phone>
<email>lisi@qq.com</email>
<address>广州</address>
</contact>
<contact id="003">
<name>王五</name>
<gender>男</gender>
<phone>134001116</phone>
<email>wangwu@qq.com</email>
<address>上海</address>
</contact>
</contact-list>

使用dom4j工具:读取xml标签(二)的更多相关文章

  1. [drp 4] 使用dom4j,读取XML数据,保存至数据库

    导读:上篇文章介绍了用XML文件配置数据库的连接,然后通过读取XML文件连接数据库的内容,本篇博客介绍读取XML文件,进行数据持久化的操作.PS:从某种意义上来说,经过Scheme校正的XML文件,本 ...

  2. dom4j工具对XML写入修改删除操作实现

    import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import ...

  3. 使用dom4j工具:xml总结

    1.IO流:BufferedReader字符流readLine();截取 不可行!!!2.XML解析:dom4j查:标签:element("name")elements(" ...

  4. 使用dom4j工具:读取xml(一)

    package dom4j_read; import java.io.File; import org.dom4j.Document; import org.dom4j.io.SAXReader; / ...

  5. dom4j读取xml

    -----记录和回顾是一个比学习更重要的环节----- 一.首先,我们需要知道xml是做什么的 1.作为软件的配置文件 2.作为数据的载体(小型的数据库) 二.xml的语法 xml文件以xml后缀名结 ...

  6. 【XML】利用Dom4j读取XML文档以及写入XML文档

    Dom4j简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能 ...

  7. 利用dom4j读取xml文件

    对于xml文件的读取,其实有很多方法,例如:SAX实现方法,DOM4J实现方法 ,DOM 实现方法,JDOM实现方法 等等. 下面,我就说下dom4j的读取方法: 1.首先,肯定要引入第三方jar包. ...

  8. DOM4J 读取XML配置文件进行数据库连接

        介绍介绍DOM4J.    据说是非常优秀非常优秀的Java XML  API(Dom4j is an easy to use, open source library for working ...

  9. 深入浅出Java Dom4j读取XML

    在以前自己使用的xml较少,只是了解其很强大,现在可算是在DRP中,真正的开始使用它了,以前只是简单的理解xml,xml即可扩展标记语言,简单的使用,具体是什么?怎么用?还是一直让自己期待的. 首先来 ...

随机推荐

  1. Java的代理模式

    最近在学习Spring,关于Spring AOP的代理模式不是很了解,看了一篇博文就懂了. https://www.cnblogs.com/cenyu/p/6289209.html Java的三种代理 ...

  2. shell脚本(5)-shell变量

    一.变量介绍 将一些数据需要临时存放在内存中,以待后续使用时快速读出. 二.变量分类 1.本地变量: 用户私有变量,只有本用户可以使用,保存在家目录下的.bash_profile..bashrc文件中 ...

  3. DNS Bind日志详述

    简介 在默认情况下,BIND9 把日志消息写到 /var/log/messages 文件中,而这些日志消息是非常少的,主要就是启动,关闭的日志记录和一些严重错误的消息:而将调试日志信息写入 BIND ...

  4. 第十四篇 -- CPU学习二——此部分重点在AMD CPU

    一.CPU的一些英文简写或解释 Definitions: ACPI--Advanced Configuration and Power Interface APP--Adjusted Peak Per ...

  5. Aria2 任意文件写入

    访问aria2,发现服务已启动并且返回404页面 打开http://binux.github.io/yaaw/demo/#打开yaaw,点击配置按钮,填入运行aria2的目标域名:http://you ...

  6. 大数据学习(15)—— B+树和LSM

    这一节介绍数据库存储引擎常用的两种数据结构.作为关系型数据库的代表,MySql的InnoDB使用B+树来存储索引.作为NoSQL的代表,HBase使用的LSM树,我们来看看两者有什么区别. B+树 B ...

  7. unittest系统(八)一文搞定unittest重试功能

    在前面的介绍中,我们对unittest进行了分享介绍,那么在实际的应用中,因为客观原因需要对失败,错误的测试用例进行重试,所以呢,现有的unittest的框架无法满足,那么我们可以去改造下是否能够满足 ...

  8. 聊聊TCP Keepalive、Netty和Docker

    聊聊TCP Keepalive.Netty和Docker 本文主要阐述TCP Keepalive和对应的内核参数,及其在Netty,Docker中的实现.简单总结了工作中遇到的问题,与大家共勉. 起因 ...

  9. Centos忘记密码怎么修改

    使用Centos系统忘记密码 在我们日常使用Centos系统时,有些人不免会出现一个共同的问题:忘记登录密码! 我们总不能再重装一遍吧! 接下来我们就分两种情况来看看: Centos系统在云服务器 C ...

  10. Github连接远程仓库详细操作

    首先 咱们需要配置ssh密钥   如何生成密钥呢    我们先来看下命令 在桌面新建一个文件夹,命名规范尽量不要使用中文,然后在文件夹内  新建测试文本: 如图   在文件夹内空白处右击进入GIt b ...