java读取xml文件
2023-09-11 14:19:52 时间
1、现在resources目录下创建xml文件:
-resources
--config
---shipCorp.xml
shipCorp.xml:文件内容如下:
<?xml version="1.0" encoding="UTF-8"?> <shipCorp> <ship code="TLC" name="泉洲太豪"></ship> <ship code="POS" name="埔洋船务"></ship> <ship code="COSCO" name="中远"></ship> <ship code="CSCO" name="中海"></ship> <ship code="NQGS" name="南青"></ship> <ship code="COH" name="京汉"></ship> <ship code="DBR" name="大连环渤海"></ship> <ship code="HY" name="红运实业"></ship> <ship code="ZIM" name="以星轮船"></ship> </shipCorp>
2、新建工具类:
package com.portx.util; import org.apache.commons.collections.CollectionUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; import java.net.URL; import java.util.*; /** * 品xml文件生成和解析 * Created by gmq on 2016/5/27. */ public class XmlReaderUtil { private static final Logger log = LoggerFactory.getLogger(XmlReaderUtil.class); private static List<Map<String, Object>> result = new ArrayList<>(); private static String PLATE_SHIP_CORP = "shipCorp.xml"; private static int LENGTH = PLATE_SHIP_CORP.length() - 4; /** * 获得全部的船公司 * * @return */ public static List<Map<String, Object>> getAllShips() { isResultEmpty(); return result; } /** * 根据船公司code获得船公司名 * * @param key * @return */ public static String getValueByKey(String key) { if (StringUtil.isEmpty(key)) { return ""; } isResultEmpty(); String value = ""; Map<String, Object> map = null; for (int i = 0; i < result.size(); i++) { map = result.get(i); if (map.containsKey(key)) { value = String.valueOf(map.get(key)); break; } } return value; } private static void isResultEmpty() { if (CollectionUtils.isEmpty(result)) { assembleShipCorpMap(PLATE_SHIP_CORP); } } private static void assembleShipCorpMap(String file) { Document document = reader(file); Set set = null; Element root = document.getRootElement(); List<Element> childElements = root.elements(); Map<String, Object> map = null; for (Element child : childElements) { map = new HashMap<>(); // set = new HashSet(); // List<Element> childList = child.elements(); // for (Element element : childList) // { // set.add(element.getText()); // } map.put(child.attributeValue("code"), child.attributeValue("name")); result.add(map); } } private static Document reader(String file) { Document document = null; log.info("Class Root Directory::" + 111); URL url = XmlReaderUtil.class.getResource("/config/" + file); log.info("板品种xml文件路径:: " + file); InputStream inputStream = null; try { try { inputStream = new FileInputStream(new File(url.getPath())); } catch (FileNotFoundException e) { e.printStackTrace(); } SAXReader reader = new SAXReader(); try { document = reader.read(inputStream); } catch (DocumentException de) { log.error("Document对象操作异常"); de.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } finally { try { inputStream.close(); } catch (IOException e) { log.error("流关闭异常"); e.printStackTrace(); } } return document; } public static void main(String[] args) { // List<Map<String, Object>> list = XmlReaderUtil.getAllShips(); // System.out.println(list); } }
以上就可以了。
相关文章
- C++的模板(和java的泛型一样)
- java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol
- Java 遍历文件夹里面的全部文件、指定文件
- 两个变量交换的四种方法(Java) 七种方法(JS)
- java split函数分割字符串
- 回归JAVA: java文件编译后,出现xx$1.class的原因
- Java反编译生成java文件
- Java IO: File
- Java Reflection(四):变量
- Java下载文件,中文名乱码(attachment;filename=中文文件名)
- JAVA使用POI读取EXCEL文件的简单model
- 【Java】整理关于java的String类,equals函数和比较操作符的区别
- 使用Pull解析器生成XML文件和读取xml文件
- 面试题 Java 遍历文件夹及其子文件夹下的所有文件,将文件路径输出到控制台
- java读取xml文件的四种方法
- 【Java】【异常排查】java.lang.NoClassDefFoundError 完美解决
- 【HarmonyOS】【JAVA UI】鸿蒙 自定义折线图
- Java 流(Stream)、文件(File)和IO
- 《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.6 将程序编译为class文件
- java jwt使用,springboot 整合java-jwt,java jwt工具类
- JMeter学习-027-JMeter参数文件(脚本分发)路径问题:jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File distributed.csv must exist and be readable解决方法
- Java学习-027-JSON 之一 -- 初识
- Java导出excel文件(使用jxl)
- 在java中使用JMH(Java Microbenchmark Harness)做性能测试
- maven 依赖文件 pom.xml 编译 mvn compile 运行 不用mvn exec:java -Dexec.mainClass="hello.HelloWorld" 打成jar包 mvn package mvn install http://blog.csdn.net/yaya1943/article/details/48464371
- Java 追加写入文件
- java学习路线-Java技术人员之路从0基础到高级
- java代码实现输出指定以.java结尾的文件的绝对路径
- java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)
- java 多种方式判断文件是否为图片
- 【android相关】【问题解决】R.java文件丢失
- Java眼中的XML--文件读取--2 应用SAX方式解析XML
- Java—斗地主的洗牌发牌系统(积小流成江海)
- Java网络编程笔记(一)
- 国产化服务器信创平台ARM架构服务器适配安装编译,包括Java的JDK、在线文件预览kkfileview和LibreOffice的编译、打包、使用,主要包括银河麒麟操作系统和鲲鹏ARM操作系统
- 【Java笔记】配置文件java.util.Properties类的使用