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中的标签属性(三)的更多相关文章

  1. freemarker获取封装类中对象的属性

    freemarker获取封装类中对象的属性 1.设计思路 (1)封装学生类 (2)创建数据模型 (3)新建student.ftl (4)运行Junit测试文件,生成HTML文件 2.封装学生类 Stu ...

  2. freemarker获取封装类中对象的属性(六)

    freemarker获取封装类中对象的属性 1.设计思路 (1)封装学生类 (2)创建数据模型 (3)新建student.ftl (4)运行Junit测试文件,生成HTML文件 2.封装学生类 Stu ...

  3. Jquery和JS获取ul中li标签(转)

    js 获取元素下面所有的li var content=document.getElementById("content"); var items=content.getElemen ...

  4. Jquery和JS获取ul中li标签

    js 获取元素下面所有的li var content=document.getElementById("content"); var items=content.getElemen ...

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

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

  6. 获取SVG中g标签的宽度高度及位置坐标

    1. 问题的出现 对于普通的HTML元素,有很多获得其宽度width.高度height.距左left.距顶top等属性的方法: 类似offsetWidth,clientWidth,width之类的,通 ...

  7. 使用getElementById获取xml中的指定元素

    Document有一个getElementById的方法,在文档中的解释是:     返回具有带给定值的 ID 属性的 Element.如果不存在此类元素,则此方法返回 null.如果多个元素具有带该 ...

  8. Mybatis配置文件SqlMapConfig.xml中的标签

    SqlMapConfig.xml配置文件中的属性 1 配置内容 properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器 ...

  9. testng.xml中groups标签使用

    XML配置如下: <?xml version="1.0" encoding="UTF-8"?> <suite name="suite ...

随机推荐

  1. 怀疑前端组件把我的excel文件搞坏了,怎么证明

    背景 我在做个需求,用户通过excel上传文件,文件中,每一行就是一条数据,后台批量处理:但是呢,用户填的数据可能有问题,所以我后台想先做个检查,然后在每一行中加一列,来指出这一行存在的问题. 我本来 ...

  2. P7324 [WC2021] 表达式求值

    P7324 [WC2021] 表达式求值 闲话 WC2021 我只得了 20 分,三道题总共 20 分.我是下场了突然后知后觉这件事的,主要原因是我开了 C++11,然后 T1 T2 都没分了.在洛谷 ...

  3. Deepin 20.2.2 /UOS 20.2 添加ppa源

    由于 工作需要,需要通过PPA安装一些优质的软件包,但是 Deepin 默认不支持PPA源 解决方法 由于Deepin/Uos系统默认是没有安装PPA的那么我们得先安装PPA来支持"add- ...

  4. python进程间的通讯实现

    1:进程间通讯的方法:apply_async()非阻塞式通讯     apply()阻塞式通讯 2:使用Queue实现对Process创建的进程间通讯, Queue本身是一个消息队列程序,Queue常 ...

  5. (opencv5)轮廓检测函数

    (opencv5)轮廓检测函数 contours, hierarchy = cv2.findContours(img, mode, method,[offset) 注意 : 1.输入为二值图像,黑色为 ...

  6. 深入刨析tomcat 之---第23篇 聊一下web容器的filter配置和defaultservet

    writedby 张艳涛,在一个webapp应用程序内如何配置filter? <?xml version="1.0" encoding="ISO-8859-1&qu ...

  7. js学习笔记之正则

    () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串.(\s*)表示连续空格的字符串.[]是定义匹配的字符范围.比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字 ...

  8. 如何给html元素的onclick事件传递参数即如何获取html标签的data

    某些非text元素,如a.button等用于触发时间的标签可已将要传的数据放在一个属性中,如data,这个属性必须是不影响样式的,可以使用任意非html定义的名字命名属性,然后将数据传到属性中, &l ...

  9. vue 子目录配置,负载均衡 nginx

    1. 我使用的是,腾讯云做负载均衡. 负载均衡配置: https://www.xxxx.com/vue   域名指向的服务器地址:10.10.10.10:80/vue 2. nginx 配置: ser ...

  10. Python中strip()、lstrip()、rstrip()函数的用法

    Python中使用函数strip().lstrip().rstrip()来剔除字符串前后的特定字符 函数语法为:str.strip(chars) 返回值是一个新的字符串,不更改源字符串 其中,参数ch ...