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路径下

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ACCESOS>
  3. <item>
  4. <SOCIO>
  5. <NUMERO>00045050</NUMERO>
  6. <REPOSICION>0</REPOSICION>
  7. <NOMBRE>MOISES MORENO</NOMBRE>
  8. <TURNOS>
  9. <LU>T1</LU>
  10. <MA>T2</MA>
  11. <MI>T3</MI>
  12. <JU>T4</JU>
  13. <VI>T5</VI>
  14. <SA>T6</SA>
  15. <DO>T7</DO>
  16. </TURNOS>
  17. </SOCIO>
  18. </item>
  19. <item>
  20. <SOCIO>
  21. <NUMERO>00045051</NUMERO>
  22. <REPOSICION>0</REPOSICION>
  23. <NOMBRE>RUTH PENA</NOMBRE>
  24. <TURNOS>
  25. <LU>S1</LU>
  26. <MA>S2</MA>
  27. <MI>S3</MI>
  28. <JU>S4</JU>
  29. <VI>S5</VI>
  30. <SA>S6</SA>
  31. <DO>S7</DO>
  32. </TURNOS>
  33. </SOCIO>
  34. </item>
  35. </ACCESOS>

(2)进行解析

  1. import java.sql.Connection;
  2. import java.sql.PreparedStatement;
  3. import java.util.Iterator;
  4. import java.util.List;
  5. import org.dom4j.Document;
  6. import org.dom4j.DocumentException;
  7. import org.dom4j.Element;
  8. import org.dom4j.io.SAXReader;
  9. /**
  10. * 解析xml,导入数据表t_test
  11. *
  12. * @author Administrator
  13. *
  14. */
  15. public class Test {
  16. public static void main(String[] args) {
  17. try {
  18.  Document doc = new SAXReader().read(Thread.currentThread() 
  19.                     .getContextClassLoader().getResourceAsStream("test01.XML")); 
  20.             xmlToDb(doc.selectNodes("/ACCESOS/item/SOCIO")); 
  21. } catch (DocumentException e) {
  22. // TODO Auto-generated catch block
  23. e.printStackTrace();
  24. }
  25. }
  26. private static void xmlToDb(List itemList) {
  27. String sql = "INSERT INTO T_TEST (NUMERO, REPOSICION, NOMBRE, TURNOS) VALUES (?, ?, ?, ?)";
  28. Connection conn = null;
  29. PreparedStatement pstmt = null;
  30. try {
  31. conn = DBUtil.getConnection();
  32. pstmt = conn.prepareStatement(sql);
  33.     for (Iterator iter = itemList.iterator(); iter.hasNext();) { 
  34.                 Element elt = (Element) iter.next(); 
  35.                 String numero = elt.elementText("NUMERO"); 
  36.                 int reposicion = Integer.parseInt(elt.elementText("REPOSICION")); 
  37.                 String nombre = elt.elementText("NOMBRE"); 
  38.  
  39.                 List turnosList = elt.elements("TURNOS"); 
  40. StringBuffer sbStr = new StringBuffer();
  41.        for (int i = 0; i < turnosList.size(); i++) { 
  42.                     Element turnosElt = (Element) turnosList.get(i); 
  43. sbStr.append(turnosElt.elementText("LU")).append(",")
  44. .append(turnosElt.elementText("MA")).append(",")
  45. .append(turnosElt.elementText("MI")).append(",")
  46. .append(turnosElt.elementText("JU")).append(",")
  47. .append(turnosElt.elementText("VI")).append(",")
  48. .append(turnosElt.elementText("SA")).append(",")
  49. .append(turnosElt.elementText("DO"));
  50. pstmt.setString(1, numero);
  51. pstmt.setInt(2, reposicion);
  52. pstmt.setString(3, nombre);
  53. pstmt.setString(4, sbStr.toString());
  54. pstmt.addBatch();
  55. }
  56. pstmt.executeBatch();
  57. System.out.println("xml--->>DB成功!");
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. }finally {
  61. DBUtil.close(pstmt);
  62. DBUtil.close(conn);
  63. }
  64. }
  65. }

【注意】

1、从当前classpath路径中超找文件:

  1. Thread.currentThread() 
  2.                     .getContextClassLoader().getResourceAsStream("test01.XML")

本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/396303,如需转载请自行联系原作者

XML文件处理总结 - 1相关推荐

  1. python读取xml文件报错ValueError: multi-byte encodings are not supported

    1.在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported 很多贴子上说把xml的编码格式改为,就可以正常执 ...

  2. tinyxml 读取文本节点_【C++】【TinyXml】xml文件的读写功能使用——写xml文件

    TinyXml工具是常用比较简单的C++中xml读写的工具 需要加载 #include "TinyXml\tinyxml.h" 在TinyXML中,根据XML的各种元素来定义了一些 ...

  3. python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch

    今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...

  4. Spring中利用applicationContext.xml文件实例化对象和调用方法

    Spring中实例化对象和调用方法入门 1.jar包和xml的准备 已上传至百度云盘,链接: https://pan.baidu.com/s/1CY0xQq3GLK06iX7tVLnp3Q 提取码: ...

  5. 如何把 XML 文件显示为 HTML 表格

    如何把 XML 文件显示为 HTML 表格 <html> <head> <script type="text/javascript"> var ...

  6. asp.net 对xml文件的读写,添加,修改,删除操作

    asp.net 对xml文件的读写,添加,修改,删除操作 下面有代码调试正确 using System; using System.Collections; using System.Componen ...

  7. 使用c#+(datagrid控件)编辑xml文件

    作者Blog:http://blog.csdn.net/ouyang76cn/ 使用c#+(datagrid控件)编辑xml文件 这个源码是我根据网上一个vb.net编辑xml文件的原理用c#重写的. ...

  8. 打包tomcat没有xml文件_Spring Boot 项目打包 War 并部署到 Tomcat

    之前使用 SpringBoot 所做的开发,都是将项目打包成 Jar 的,但是如果是作为一个 Web 项目,最好是将项目打包成 War. 1. Jar 包和 War 包的区别 1.概念 jar 包:J ...

  9. android读取xml 字符串,Android 读取本地Xml文件,并转换成String

    问题 不是解析本地 xml 文件, 而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String. 与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5 ...

  10. 根据xml 文件生成 xsd文件 以及相关测试方法

    1.下载trang.jar 下载地址:  http://www.java2s.com/Code/Jar/t/Downloadtrang20091111jar.htm 2.用法介绍 将trang.jar ...

最新文章

  1. Affinity Propagation+聚类
  2. 移动物联网技术LoRa、SigFox、NB-IoT和eMTC的发展轨迹
  3. Android---自定义Toast
  4. MOCTF-Web-死亡退出
  5. 将不确定变为确定~transactionscope何时提升为分布式事务?(sql2005数据库解决提升到MSDTC的办法)...
  6. stark组件开发之组合搜索基本显示
  7. unity, undo
  8. 企业数字化转型到底是什么?带你一图看懂答案
  9. Do you want to put on or loose weight?
  10. linux显卡驱动未加载,Linux下无显卡驱动的解决办法
  11. AngularJS Eclipse——新手入门【翻译+整理】
  12. mongodb远程连接访问
  13. 请善待身边的 IT 狗
  14. Android设置Textview字体样式
  15. 搭建自己的服务器代理 yyds
  16. win10启用smb3多通道_关于win10无法使用smb访问局域网内的计算机
  17. 连接到物联网的12中通信技术
  18. ERP 系统的应用对企业财务会计信息系统内部控制的影响
  19. 案例分析 | 茶饮如何积累3500万私域流量实现弯道超车?
  20. 全国青少年软件编程等级考试Python标准解读(1_6级)

热门文章

  1. 程序员买房,买车,一个避不开的梗
  2. 性能测试--jmeter中HTTP Cookie管理器的使用【18】
  3. python实现时间戳和时间格式转换以及当前时间,特定时间的前后偏移
  4. sigmoid层的输出_keras如何多输入多输出,以及中间层输出
  5. java 检测 类型_[Java教程]javascript类型与类型检测
  6. django mysql debug_django mysql db 日志无输出
  7. win10平板模式_电脑也能当平板用?并可以轻松实现分屏
  8. Android Power Placeholder | 中文教学视频
  9. Kotlin从入门到放弃(三)——协程
  10. Robot Framework 的安装配置和简单的实例介绍