使用dom4j xml解析文件数据

news/2024/5/4 19:42:58/文章来源:https://www.cnblogs.com/guozhiqiang/p/16648426.html

image

XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<contactList><contact id="1" vip="true"><name> 潘金莲 </name><gender>女</gender><email>panpan@itcast.cn</email></contact><contact id="1" vip="false"><name> 武松 </name><gender>男</gender><email>wusong@itcast.cn</email></contact><contact id="1" vip="true"><name> 武大郎 </name><gender>男</gender><email>wuda@itcast.cn</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 {@Testpublic 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"));}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_4423.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猿创征文|在工作中彻底搞懂原型和原型链的原理

前言 在前端开发过程中&#xff0c;涉及到JS原理相关的内容也就是常用的几大模块&#xff0c;不仅常用而且很重要&#xff0c;但是涉及到原理的话会有点难懂&#xff0c;尤其是对JS接触不太久的开发者来讲&#xff0c;甚至工作好几年的开发者也只是在平时开发中知道怎么使用&am…

FastFlow介绍与farm模式例子的编写

软件简介 FastFlow 是一个多核编程框架&#xff0c;实现了无锁的 MPMC FIFO 队列规范&#xff0c;用以支持多核的高级应用开发。速度比 TBB、OpenMP 都要快。 主页&#xff1a; https://github.com/fastflow/fastflow Farm模式的编写&#xff1a; 1.基本Farm模式编写 #inclu…

推荐系统-Hive基础

Hive基本操作基本概念功能说明架构hive和hadoop数据模型安装部署安装启动基本操作hive的内部表和外部表分区表动态分区Hive函数Hive内置运算符和内置函数Hive自定义函数综合案例基本概念 功能说明 操作接口采用类SQL法&#xff0c;提供快速开发的能力避免了去写MapReduce&…

通信原理 | 基本概念:信源、信道、噪声、信宿等

一、通信的基本概念 1. 信源 通信中产生和发送信息的一端叫做信源 2. 信宿 通信中接收信息的一端叫做信宿 3. 信道 信号在信源和信宿之间传输的通道叫做信道(主要分为有线信道和无线信道) 4. 噪声 信息在传输过程中可能受到外界干扰&#xff0c;把这种干扰成为噪声 5.…

关于Flask高级_RequestParser中的add_argument方法参数详解

Flask高级_RequestParser中的add_argument方法参数详解 一.参数介绍 default&#xff1a;默认值&#xff0c;如果这个参数没有值&#xff0c;那么将使用这个参数 指定的默认值。 required&#xff1a;是否必须。默认为False&#xff0c;如果设置为True&#xff0c;那么这 个参…

msf后渗透之文件交互指令、上传下载文件、屏幕截图、键盘记录、创建账户、音频录像和提权(上)

目录 1、文件交互指令 2、上传下载文件(windows) 3、屏幕截图(windows) 4、键盘记录&#xff08;windows&#xff09; 1、先启动记录keyscan_start 2、显示键盘输入内容keyscan_dump 3、结束监控keyscan_stop 5、创建账户&#xff08;windows&#xff09; 1、先看下目标…

C语言-手写Map(数组+链表+红黑树)(全功能)

要求 需要准备数组集合(List) 数据结构需要准备单向链表(Linked) 数据结构需要准备红黑树(Rbtree)数据结构需要准备红黑树和链表适配策略(文章内部提供,可以自行参考) 建议先去阅读我博客这篇文章C语言-手写Map(数组链表)(全功能) 有助于理解 hashmap使用红黑树的原因是&…

Java实现的一个编译器源代码(Win11)

本文的源代码摘自编译器龙书《Compilers : principles, techniques, and tools》第二版的附录A“一个完整的前端”&#xff08;A Complete Front End&#xff09;。 上述书中的编译器是在Unix系统中&#xff0c;主体代码与书中相同&#xff0c;只是对字符串处理不同&#xff1…

C++ Qt / VS2019 +opencv + onnxruntime 部署语义分割模型【经验】

本机环境&#xff1a; OS:WIN11 CUDA: 11.1 CUDNN:8.0.5 显卡&#xff1a;RTX3080 16G opencv:3.3.0 onnxruntime:1.8.1 目前C 调用onnxruntime的示例主要为图像分类网络&#xff0c;与语义分割网络在后处理部分有很大不同。 pytorch模型转为onnx格式 1.1 安装onnx, 参考官网…

Tcp通信

一发一收 Client package tcpDemo;import java.io.OutputStream; import java.io.PrintStream; import java.net.Socket; import java.util.Scanner;public class Client {public static void main(String[] args) throws Exception {//1.创建Socke通信管道请求服务端的连接//p…

TCP连接管理机制(超级重要)

以下是这篇文章讲解的思维导图,整理完,我也脑瓜子嗡嗡的,怎么这么多,那是因为太重要了,防止面试官把你问死,那就必须去了解,加油啊~~~ 参考 : 小林coding 书籍 : TCP/IP 卷一 网站 : 计算机网络-41-60 | 阿秀的学习笔记 知乎文章 : 看到有人说&#xff0c;只看到过TCP状态位…

【单片机原理及应用】第一篇——单片机概述

个人主页 点击这里 专栏学习 点击这里 目录 内容概要 1.1单片机简介 1.2单片机的发展历史 1.3单片机的特点 1.4单片机的应用 1&#xff0e;工业检测与控制 2&#xff0e;仪器仪表 3&#xff0e;消费类电子产品 4&#xff0e;通讯 5&#xff0e;武器装备 6.各种终…

python从入门到实践:数据类型、文件处理

目录 一、数据类型 1.数字 整型与浮点型 其他数字类型 2.字符串 3.字节串 4.列表 5.元祖 6.集合 7.字典 8.可变类型与不可变类型 数字类型 字符串 列表 元祖 字典 9.数据类型总结 二、文件处理 1.文件的引入 2.文件的基本操作流程 2.1基本流程 2.2资源回…

【Java 基础】7、学习 Java 中的方法(方法的定义、可变参数、参数的传递问题、方法重载、方法签名)通过官方教程

&#x1f4b0; 写了一段时间的 Java 程序&#xff0c;SpringBoot &#x1f343;项目也做了好几个&#xff0c;但感觉自己对 Java 的了解还是特别少&#xff0c;所以决定从零&#x1f37c;开始重新学习&#xff0c;下面是学习的笔记。【学习素材&#xff1a;韩顺平老师】 &#…

docker 安装 elasticsearch

一、安装docker Docker 的安装_傲傲娇的博客-CSDN博客 二、配置es挂载文件和目录 mkdir -p /opt/elasticsearch/{config,data,plugins} chmod 777 /opt/elasticsearch/data 在config目录下创建elasticsearch.yml配置文件 cluster.name: elasticsearch-cluster # 节点名称 n…

【MC教程】iPad启动Java版mc(无需越狱)(保姆级?) Jitterbug启动iOS我的世界Java版启动器 PojavLauncher

【MC教程】iPad启动Java版mc&#xff08;无需越狱&#xff09;(保姆级?) Jitterbug启动iOS我的世界Java版启动器 PojavLauncher 文章目录【MC教程】iPad启动Java版mc&#xff08;无需越狱&#xff09;(保姆级?) Jitterbug启动iOS我的世界Java版启动器 PojavLauncher前言iSign…

springmvc实现文件上传书本管理CRUD

今天小编给大家分享文件上传&#xff0c;和对书本管理进行新增、修改、删除、查询。 效果展示 首页 新增 修改 一、书本管理CRUD 1.开发前必做的配置 1.1 导入pom.xml文件依赖 实现CRUDspringmvc的jar包 <dependency><groupId>org.springframework</groupId…

3.实现redis哨兵,模拟master故障场景

3.实现redis哨兵,模拟master故障场景 实验拓扑图 3.1 哨兵的准备实现主从复制架构 哨兵的前提是已经实现了一个redis的主从复制的运行环境,从而实现一个一主两从基于哨兵的高可用redis架构。 注意: master 的配置文件中的masterauth 和slave的都必须相同 所有主从节点的redis…

小波神经网络的基本原理,小波神经网络功能分析

小波神经网络的优势是什么&#xff1f;谢谢 小波神经网络相比于前向的神经网络,它有明显的优点:首先小波神经网络的基元和整个结构是依据小波分析理论确定的,可以避免BP神经网络等结构设计上的盲目性;其次小波神经网络有更强的学习能力,精度更高。 总的而言&#xff0c;对同样…

数据结构初步(一)- 时间与空间复杂度

目录前言1. 数据结构与算法1.1 数据结构是啥1.2 算法是啥2. 算法效率2.1 如何衡量一个算法的效率2.2 算法的复杂度3. 时间复杂度3.1 概念3.2 大O的渐进表示法3.3 例子分析计算Func2的时间复杂度计算Func3的时间复杂度计算Func4的时间复杂度计算strchr的时间复杂度计算冒泡排序的…