XML文件处理总结 - 1
1、DOM4J处理XML文件
步骤1:引入dom4j的Jar包【dom4j-1.6.1.jar】; 同时引入jaxen的Jar包【jaxen-1.1-beta-6.jar】,方便用类似于SQL的方式对XML的节点进行访问
步骤2:获取XML文件并进行解析
(1)将test01.XML文件放到path路径下
- <?xml version="1.0" encoding="utf-8"?>
- <ACCESOS>
- <item>
- <SOCIO>
- <NUMERO>00045050</NUMERO>
- <REPOSICION>0</REPOSICION>
- <NOMBRE>MOISES MORENO</NOMBRE>
- <TURNOS>
- <LU>T1</LU>
- <MA>T2</MA>
- <MI>T3</MI>
- <JU>T4</JU>
- <VI>T5</VI>
- <SA>T6</SA>
- <DO>T7</DO>
- </TURNOS>
- </SOCIO>
- </item>
- <item>
- <SOCIO>
- <NUMERO>00045051</NUMERO>
- <REPOSICION>0</REPOSICION>
- <NOMBRE>RUTH PENA</NOMBRE>
- <TURNOS>
- <LU>S1</LU>
- <MA>S2</MA>
- <MI>S3</MI>
- <JU>S4</JU>
- <VI>S5</VI>
- <SA>S6</SA>
- <DO>S7</DO>
- </TURNOS>
- </SOCIO>
- </item>
- </ACCESOS>
(2)进行解析
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.util.Iterator;
- import java.util.List;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.Element;
- import org.dom4j.io.SAXReader;
- /**
- * 解析xml,导入数据表t_test
- *
- * @author Administrator
- *
- */
- public class Test {
- public static void main(String[] args) {
- try {
- Document doc = new SAXReader().read(Thread.currentThread()
- .getContextClassLoader().getResourceAsStream("test01.XML"));
- xmlToDb(doc.selectNodes("/ACCESOS/item/SOCIO"));
- } catch (DocumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- private static void xmlToDb(List itemList) {
- String sql = "INSERT INTO T_TEST (NUMERO, REPOSICION, NOMBRE, TURNOS) VALUES (?, ?, ?, ?)";
- Connection conn = null;
- PreparedStatement pstmt = null;
- try {
- conn = DBUtil.getConnection();
- pstmt = conn.prepareStatement(sql);
- for (Iterator iter = itemList.iterator(); iter.hasNext();) {
- Element elt = (Element) iter.next();
- String numero = elt.elementText("NUMERO");
- int reposicion = Integer.parseInt(elt.elementText("REPOSICION"));
- String nombre = elt.elementText("NOMBRE");
- List turnosList = elt.elements("TURNOS");
- StringBuffer sbStr = new StringBuffer();
- for (int i = 0; i < turnosList.size(); i++) {
- Element turnosElt = (Element) turnosList.get(i);
- sbStr.append(turnosElt.elementText("LU")).append(",")
- .append(turnosElt.elementText("MA")).append(",")
- .append(turnosElt.elementText("MI")).append(",")
- .append(turnosElt.elementText("JU")).append(",")
- .append(turnosElt.elementText("VI")).append(",")
- .append(turnosElt.elementText("SA")).append(",")
- .append(turnosElt.elementText("DO"));
- }
- pstmt.setString(1, numero);
- pstmt.setInt(2, reposicion);
- pstmt.setString(3, nombre);
- pstmt.setString(4, sbStr.toString());
- pstmt.addBatch();
- }
- pstmt.executeBatch();
- System.out.println("xml--->>DB成功!");
- } catch (Exception e) {
- e.printStackTrace();
- }finally {
- DBUtil.close(pstmt);
- DBUtil.close(conn);
- }
- }
- }
【注意】
1、从当前classpath路径中超找文件:
- Thread.currentThread()
- .getContextClassLoader().getResourceAsStream("test01.XML")
本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/396303,如需转载请自行联系原作者
XML文件处理总结 - 1相关推荐
- python读取xml文件报错ValueError: multi-byte encodings are not supported
1.在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported 很多贴子上说把xml的编码格式改为,就可以正常执 ...
- tinyxml 读取文本节点_【C++】【TinyXml】xml文件的读写功能使用——写xml文件
TinyXml工具是常用比较简单的C++中xml读写的工具 需要加载 #include "TinyXml\tinyxml.h" 在TinyXML中,根据XML的各种元素来定义了一些 ...
- python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch
今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...
- Spring中利用applicationContext.xml文件实例化对象和调用方法
Spring中实例化对象和调用方法入门 1.jar包和xml的准备 已上传至百度云盘,链接: https://pan.baidu.com/s/1CY0xQq3GLK06iX7tVLnp3Q 提取码: ...
- 如何把 XML 文件显示为 HTML 表格
如何把 XML 文件显示为 HTML 表格 <html> <head> <script type="text/javascript"> var ...
- asp.net 对xml文件的读写,添加,修改,删除操作
asp.net 对xml文件的读写,添加,修改,删除操作 下面有代码调试正确 using System; using System.Collections; using System.Componen ...
- 使用c#+(datagrid控件)编辑xml文件
作者Blog:http://blog.csdn.net/ouyang76cn/ 使用c#+(datagrid控件)编辑xml文件 这个源码是我根据网上一个vb.net编辑xml文件的原理用c#重写的. ...
- 打包tomcat没有xml文件_Spring Boot 项目打包 War 并部署到 Tomcat
之前使用 SpringBoot 所做的开发,都是将项目打包成 Jar 的,但是如果是作为一个 Web 项目,最好是将项目打包成 War. 1. Jar 包和 War 包的区别 1.概念 jar 包:J ...
- android读取xml 字符串,Android 读取本地Xml文件,并转换成String
问题 不是解析本地 xml 文件, 而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String. 与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5 ...
- 根据xml 文件生成 xsd文件 以及相关测试方法
1.下载trang.jar 下载地址: http://www.java2s.com/Code/Jar/t/Downloadtrang20091111jar.htm 2.用法介绍 将trang.jar ...
最新文章
- Affinity Propagation+聚类
- 移动物联网技术LoRa、SigFox、NB-IoT和eMTC的发展轨迹
- Android---自定义Toast
- MOCTF-Web-死亡退出
- 将不确定变为确定~transactionscope何时提升为分布式事务?(sql2005数据库解决提升到MSDTC的办法)...
- stark组件开发之组合搜索基本显示
- unity, undo
- 企业数字化转型到底是什么?带你一图看懂答案
- Do you want to put on or loose weight?
- linux显卡驱动未加载,Linux下无显卡驱动的解决办法
- AngularJS Eclipse——新手入门【翻译+整理】
- mongodb远程连接访问
- 请善待身边的 IT 狗
- Android设置Textview字体样式
- 搭建自己的服务器代理 yyds
- win10启用smb3多通道_关于win10无法使用smb访问局域网内的计算机
- 连接到物联网的12中通信技术
- ERP 系统的应用对企业财务会计信息系统内部控制的影响
- 案例分析 | 茶饮如何积累3500万私域流量实现弯道超车?
- 全国青少年软件编程等级考试Python标准解读(1_6级)
热门文章
- 程序员买房,买车,一个避不开的梗
- 性能测试--jmeter中HTTP Cookie管理器的使用【18】
- python实现时间戳和时间格式转换以及当前时间,特定时间的前后偏移
- sigmoid层的输出_keras如何多输入多输出,以及中间层输出
- java 检测 类型_[Java教程]javascript类型与类型检测
- django mysql debug_django mysql db 日志无输出
- win10平板模式_电脑也能当平板用?并可以轻松实现分屏
- Android Power Placeholder | 中文教学视频
- Kotlin从入门到放弃(三)——协程
- Robot Framework 的安装配置和简单的实例介绍