首页 > 其他分享 >使用dom4j xml解析文件数据

使用dom4j xml解析文件数据

时间:2022-09-02 02:55:07浏览次数:51  
标签:xml dom4j System contact println import 解析 out

image

XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<contactList>
    <contact id="1" vip="true">
        <name> 潘金莲 </name>
        <gender>女</gender>
        <email>[email protected]</email>
    </contact>
    <contact id="1" vip="false">
        <name> 武松 </name>
        <gender>男</gender>
        <email>[email protected]</email>
    </contact>
    <contact id="1" vip="true">
        <name> 武大郎 </name>
        <gender>男</gender>
        <email>[email protected]</email>
    </contact>
</contactList>

dom4j

package dom4j;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.io.InputStream;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class start {
    @Test
    public void parseXMLData() throws Exception {
        //1. 创建一个Dom4j的解析器对象,代表了整个dom4j框架
        SAXReader saxReader = new SAXReader();
        //2. 把XML文件加载到内存中成为一个Document文档对象
        //Document document = saxReader.read(new File("xml-app\\src\\Contact.xml"));
        InputStream is = start.class.getResourceAsStream("/contact.xml");
        Document document = saxReader.read(is);
        //3. 获取根元素对象
        Element root = document.getRootElement();
        System.out.println(root);
        // 默认获取第一个元素对象
        Element contact = root.element("contact");
        //获取了元素文本
        System.out.println(contact.elementText("name"));
        // 去除前后空格
        System.out.println(contact.elementTextTrim("name"));
        // 获取当前元素下的子元素对象
        Element email = contact.element("email");
        System.out.println(email.getText());
        //根据元素获取属性值
        Attribute idAttr = contact.attribute("id");
        System.out.println(idAttr.getName() + "-->" + idAttr.getValue());
        //直接获取属性值
        System.out.println(contact.attributeValue("id"));
        System.out.println(contact.attributeValue("vip"));
    }
}

标签:xml,dom4j,System,contact,println,import,解析,out
From: https://www.cnblogs.com/guozhiqiang/p/16648426.html

相关文章

  • Spring装配bean之通过 XML代码装配 bean
      在Spring中,对象无需自己查找和创建与其所关联的其他对象。相反,容易负责把需要相互协作的对象引用赋予各个对象。例如,一个订单管理的组件需要信用卡认证组件,但它不需要......
  • 【Django】第03回 生命周期、路由匹配、反向解析、名称空间
    目录1.用户数据的增删改查2.Django请求生命周期流程图3.路由匹配3.1path斜杠3.2path转换器3.3正则匹配无名分组、有名分组4.反向解析4.1反向解析语法4.2无名有名......
  • django路由匹配、反向解析、无名有名反向解析、路由分发、名称空间
    目录django请求生命周期流程图1.Django请求的生命周期的含义2.Django请求的生命周期图解及流程3.Django的请求生命周期(分布解析)路由层1.路由匹配2.path转换器3.re_path正则......
  • 今日内容 django路由匹配,分组,分发和反向解析
    django请求生命周期流程图浏览器     发送请求(HTTP协议)web服务网关接口:1、请求来的时候解析封装    响应走的时候打包处理2、django默认的wsgi......
  • Django请求生命周期与反向解析
    Django请求生命周期与反向解析Django请求生命周期流程图Django路由匹配(多版本)1.路由 path('网址后缀',函数名(类名)) 一旦网址后缀匹配上了就会自动执行后面的函数......
  • 1.Mybatis-XML模板
    SELECT sr.ROLE_IDASroleId, sr.ROLE_NAMEASroleName, sr.IS_ACTIVEASisActive, sr.REMARKASremark, sr.CREATE_DATETIMEAScreateDatetime, CON......
  • 路由匹配与解析
    django请求生命周期路由匹配1.路由path('网址后缀',函数名)一旦网址的后缀匹配上时,就会自动执行后面的函数并结束整个路由的匹配2.路由结尾的斜杠2.1如果输入网址......
  • 修改Android apk的二进制文件AndroidManifest.xml,并重新签名打包apk
    最近使用uni-app混合式框架开发一个App,需要把AndroidApp隐藏图标并隐式启动。有三种方案:1.使用uni-app离线打包。2.在不改源码的情况下,只修改apk的二进制文件AndroidM......
  • JAVA常用集合解析
    JAVA常用集合解析常用集合属性详解集合底层实现原理常用集合适用场景分析集合属性详解集合是一个存放对象的引用的容器,在Java中它存在于java.util包下,List、Set......
  • logback.xml 配置文件
    logback.xml<?xmlversion="1.0"encoding="UTF-8"?><configuration><!--定义日志文件的存储地址勿在LogBack的配置中使用相对路径--><!--<propertynam......