使用dom4j工具:获取xml中的标签属性(三)
package dom4j_read;
import java.io.File;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
/**
* 使用dom4j获取xml上的属性信息
*/
import org.dom4j.io.SAXReader;
public class Demo03 {
public static void main(String[] args) throws Exception {
// 1)创建xml解析器
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("./src/contact.xml"));
/**
* 1.1 读取属性 注意: 获取属性,必须先得到属性所在的标签
*/
Element conElem = doc.getRootElement().element("contact");
// 1.1在标签上获取属性(根据属性名获得对应的属性值)
String value = conElem.attributeValue("id");
System.out.println(value);
/**
* 1.2 获取id = 002的属性 获取名字相同的contact标签中的 第二个标签
*/ // 因为elements返回的是list 放进去之后是Object
Element conELem2 = (Element) doc.getRootElement().elements().get(1); // 下标从0开始的
/**
* 1.3 根据属性名获取属性对象
*/
// 拿到标签对象
conElem = doc.getRootElement().element("contact");
// 拿到属性对象
Attribute idAttr = conElem.attribute("id");
// 通过属性对象拿到属性名
String idName = idAttr.getName();
// 通过属性对象拿到属性值
String idValue = idAttr.getValue();
System.out.println(idName + "=" + idValue);
/**
* 1.4 获取标签的所有属性
* 指一个标签中的多个属性值:
* 例如:
* <contact id="001" name="eric">
*/
conElem = doc.getRootElement().element("contact");
List<Attribute> attrList = conElem.attributes();
for(Attribute attribute : attrList) {
System.out.println(attribute.getName()+" = "+attribute.getValue());
}
}
}
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中的标签属性(三)的更多相关文章
- freemarker获取封装类中对象的属性
freemarker获取封装类中对象的属性 1.设计思路 (1)封装学生类 (2)创建数据模型 (3)新建student.ftl (4)运行Junit测试文件,生成HTML文件 2.封装学生类 Stu ...
- freemarker获取封装类中对象的属性(六)
freemarker获取封装类中对象的属性 1.设计思路 (1)封装学生类 (2)创建数据模型 (3)新建student.ftl (4)运行Junit测试文件,生成HTML文件 2.封装学生类 Stu ...
- Jquery和JS获取ul中li标签(转)
js 获取元素下面所有的li var content=document.getElementById("content"); var items=content.getElemen ...
- Jquery和JS获取ul中li标签
js 获取元素下面所有的li var content=document.getElementById("content"); var items=content.getElemen ...
- dom4j工具对XML写入修改删除操作实现
import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import ...
- 获取SVG中g标签的宽度高度及位置坐标
1. 问题的出现 对于普通的HTML元素,有很多获得其宽度width.高度height.距左left.距顶top等属性的方法: 类似offsetWidth,clientWidth,width之类的,通 ...
- 使用getElementById获取xml中的指定元素
Document有一个getElementById的方法,在文档中的解释是: 返回具有带给定值的 ID 属性的 Element.如果不存在此类元素,则此方法返回 null.如果多个元素具有带该 ...
- Mybatis配置文件SqlMapConfig.xml中的标签
SqlMapConfig.xml配置文件中的属性 1 配置内容 properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器 ...
- testng.xml中groups标签使用
XML配置如下: <?xml version="1.0" encoding="UTF-8"?> <suite name="suite ...
随机推荐
- kafka可视化工具
Kafka可视化客户端工具(Kafka Tool 2)的安装和使用 Kafka Tool 2 是一款 Kafka 的可视化客户端工具,可以非常方便的查看 Topic 的队列信息.消费者信息以及 kaf ...
- idea使用maven下载jar包,出现证书校验问题问题,unable to find valid certification path to requested target
每次从github上下载下来的项目都报如下错误could not transfer artifact org.springframework.boot:spring-boot-starter-pare ...
- 开发工具IDE从入门到爱不释手(四)高级进阶
代码生成Alt+Insert set/get生成 构造方法生成 toString生成 hashCode,equals 代码重构Refactor 不改变原有逻辑,让IDE帮助代码美观 重命名 Shift ...
- windows7查看和关闭占用的端口
1. 查看占用的端口 cmd 后输入命令:netstat -aon|findstr [要查的端口] 如欲查端口1099,输入:netstat -aon|findstr 1099 2. 关闭占用的端口 ...
- C++ Socket编程(基础)
一.基本简介 在计算机通信领域,socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式. 通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也 ...
- 带标签的for循环
for循环可以加标签,使用break或者continue时,若存在多层嵌套循环可指定标签的for循环 public class ForLabel { public static void main(S ...
- 以两种异步模型应用案例,深度解析Future接口
摘要:本文以实际案例的形式分析了两种异步模型,并从源码角度深度解析Future接口和FutureTask类. 本文分享自华为云社区<[精通高并发系列]两种异步模型与深度解析Future接口(一) ...
- Oracle 对 sql 的处理过程
当你发出一条 sql 语句交付 Oracle,在执行和获取结果前,Oracle 对此 sql 将进行几个步骤 的处理过程: 1.语法检查(syntax check) 检查此 sql 的拼写是否语法 ...
- Apache ActiveMQ(cve-2015-5254)
影响版本 Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞 复现 使用工具执行命令 工具地址 https://github.com/matthiaskaiser/jmet/re ...
- etcd raft 处理流程图系列1-raftexample
最近在看raft相关的代码和实现,发现etcd的raft模块在实现上还是比较灵活的,但缺点就是需要用户实现比较多的功能,如存储和网络等,同时带来的优点就是不会对用户的存储和传输作限制.网上对该模块的描 ...