【记录】java解析xml文件
最近新需求要解析xml格式的日志文件,解析完之后数据库落地。
经过度娘搜索,写了demo,现记录如下:
测试XML
<?xml version="1.0" encoding="UTF-8"?>
<stus core-uuid = "4bc7e7f6-14db-11ea-b8e5-9fa46b26ed54" switchname="iZbp1i0fg2swiwfhc4zzqnZ">
<stu id="10086">
<name>张三</name>
<age>18</age>
<address>深圳</address>
</stu>
<stu id="10086">
<name>李四</name>
<name>李五</name>
<name>李六</name>
<age>28</age>
<address>北京</address>
</stu>
</stus>
JAVA类
public class Test{ private static String FilePath = "D:/NewFile.xml"; public static void analysisXml() {
//1. 创建sax读取对象
SAXReader saxReader = new SAXReader();
//2. 指定解析的xml源
Document document = null;
// 通过reader对象的read方法加载books.xml文件,获取docuemnt对象。
// Document document = reader.read(new File("src/res/books.xml"));
try {
// document = saxReader.read(new URL("https://www.w3school.com.cn/example/xmle/note.xml"));
// document = saxReader.read(new ByteArrayInputStream(FilePath.getBytes("UTF-8")));
document = saxReader.read(new File(FilePath));
} catch (Exception e1) {
log.error("解析调用结果异常", e1);
e1.printStackTrace();
}
//3. 得到根元素
Element root = document.getRootElement();
System.out.println("=====父节点=====");
System.out.println("rootgetName--"+root.getName());
System.out.println("rootattributeValue--"+root.attributeValue("core-uuid"));
System.out.println("rootattributeValue--"+root.attributeValue("switchname"));
System.out.println("rootgetPath--"+root.getPath());
System.out.println("rootgetNamespace--"+root.getNamespace());
System.out.println("roottoString--"+root.toString());
System.out.println("=====结束=====");
// 通过element对象的elementIterator方法获取迭代器
Iterator it = root.elementIterator();
// 遍历迭代器,获取根节点中的信息(书籍)
while (it.hasNext()) {
System.out.println("=====开始遍历=====");
Element element = (Element) it.next();
System.out.println("elementName::"+element.getName());
// 获取book的属性名以及 属性值
List<Attribute> attrs = element.attributes();
for (Attribute attr : attrs) {
System.out.println("属性名:" + attr.getName() + "--属性值:"
+ attr.getValue());
}
Iterator itt = element.elementIterator();
while (itt.hasNext()) {
Element bookChild = (Element) itt.next();
System.out.println("节点名:" + bookChild.getName() + "--节点值:" + bookChild.getStringValue());
}
System.out.println("=====结束遍历=====");
}
} public static void main(String[] args) {
analysisXml();
}
}
引用包
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
输出结果
=====父节点=====
rootgetName--stus
rootattributeValue--4bc7e7f6-14db-11ea-b8e5-9fa46b26ed54
rootattributeValue--iZbp1i0fg2swiwfhc4zzqnZ
rootgetPath--/stus
rootgetNamespace--org.dom4j.Namespace@babe [Namespace: prefix mapped to URI ""]
roottoString--org.dom4j.tree.DefaultElement@1700915 [Element: <stus attributes: [org.dom4j.tree.DefaultAttribute@21de60b4 [Attribute: name core-uuid value "4bc7e7f6-14db-11ea-b8e5-9fa46b26ed54"], org.dom4j.tree.DefaultAttribute@c267ef4 [Attribute: name switchname value "iZbp1i0fg2swiwfhc4zzqnZ"]]/>]
=====结束=====
=====开始遍历=====
elementName::stu
属性名:id--属性值:10086
节点名:name--节点值:张三
节点名:age--节点值:18
节点名:address--节点值:深圳
=====结束遍历=====
=====开始遍历=====
elementName::stu
属性名:id--属性值:10086
节点名:name--节点值:李四
节点名:name--节点值:李五
节点名:name--节点值:李六
节点名:age--节点值:28
节点名:address--节点值:北京
=====结束遍历=====
参考地址:https://blog.csdn.net/myme95/article/details/94454324
参考地址:https://www.cnblogs.com/bingru/p/10438020.html
参考地址:https://www.cnblogs.com/zhuawang/p/3371291.html
参考地址:https://blog.csdn.net/testTop/article/details/93527796
【记录】java解析xml文件的更多相关文章
- java解析xml文件并输出
使用java解析xml文件,通过dom4j,代码运行前需先导入dom4j架包. ParseXml类代码如下: import java.io.File; import java.util.ArrayLi ...
- 使用Java解析XML文件或XML字符串的例子
转: 使用Java解析XML文件或XML字符串的例子 2017年09月16日 11:36:18 inter_peng 阅读数:4561 标签: JavaXML-Parserdom4j 更多 个人分类: ...
- Java解析xml文件遇到特殊符号&会出现异常的解决方案
文/朱季谦 在一次Java解析xml文件的开发过程中,使用SAX解析时,出现了这样一个异常信息: Error on line 60 of document : 对实体 "xxx" ...
- Java解析XML文件的方式
在项目里,我们往往会把一些配置信息放到xml文件里,或者各部门间会通过xml文件来交换业务数据,所以有时候我们会遇到“解析xml文件”的需求.一般来讲,有基于DOM树和SAX的两种解析xml文件的方式 ...
- java解析XML文件
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...
- JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)
1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...
- java 解析xml文件案例
package xmlTest; import javax.xml.parsers.*; import org.w3c.dom.*; public class GetXml { public stat ...
- 关于java解析xml文件出现的问题
DOM解析xml文件 问题1:导入javax.xml.parsers.DocumentBuilderFactory出现问题,如图: 解决办法是:由于创建工程时有个默认的jre,重新创建工程改掉就解决了 ...
- java解析XML文件四种方法之引入源文件
1.DOM解析(官方) try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); Documen ...
随机推荐
- 清北学堂算法&&数据结构DAY1——知识整理
简述: 今天主要讲分治(主要是二分).倍增.贪心.搜索,还乱入了爬山算法和模拟退火(汗...) 一.分(er)治(fen): 二分是个在OI中广泛运用的思想,随便举些例子,就足以发现二分的运用的广泛性 ...
- #1113-JSP 语法
JSP 语法 JSP开发中的基础语法. 脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达式,只要它们在脚本语言中是有效的. 脚本程序的语法格式: <% 代码片段 %> 或者 ...
- 基础:高通bring up camera【转】
本文转载自:http://blog.csdn.net/liwei16611/article/details/53056710 bring UP 需要做的工作 1.kernelspace senso ...
- Linux 下wdcp支持两种安装方式
wdcp支持两种安装方式1 源码编译 此安装比较麻烦和耗时,一般是20分钟至一个小时不等,具体视机器配置情况而定2 RPM包安装 简单快速,下载快的话,几分钟就可以完成源码安装(ssh登录服务器,执行 ...
- java valueOf
valueOf 方法可以将原生数值类型转化为对应的Number类型,java.lang.Number 基类包括ouble.Float.Byte.Short.Integer 以及 Long派生类, 也可 ...
- AtomicIntegerFieldUpdater 源码分析
AtomicIntegerFieldUpdater AtomicIntegerFieldUpdater 能解决什么问题?什么时候使用 AtomicIntegerFieldUpdater? 1)字段必须 ...
- VMware 虚拟化编程(10) — VMware 数据块修改跟踪技术 CBT
目录 目录 前文列表 数据块修改跟踪技术 CBT 为虚拟机开启 CBT CBT 修改数据块偏移量获取函数 QueryChangedDiskAreas changeId 一个 QueryChangedD ...
- Openstack_通用模块_Oslo_vmware 创建/删除 vCenter 虚拟机
目录 目录 oslovmware Connect to vCenter Server Create VirtualMachine for vCenter 常用的虚拟机配置项 删除虚拟机 oslo.vm ...
- floding regions
- 阿里云DNS api接口 shell 更改DNS解析
可定时任务检查域名解析,调用alidns.sh更新DNS解析 #!/bin/bash # alidns.sh #https://www.cnblogs.com/elvi/p/11663910.html ...