当前位置: 首页 > news >正文

XML内容解析成实体类

XML解析成实体类

  • 解析方法
    • 实体类
    • 测试

说明:直接上干货,不废话

解析方法

public static List<PlatJuMinBaoXian> parse(String xmlString) {List<PlatJuMinBaoXian> result = new ArrayList<>();try {// 创建 DocumentBuilderDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();// 将字符串转换为输入流ByteArrayInputStream input = new ByteArrayInputStream(xmlString.getBytes("UTF-8"));// 解析 XMLDocument document = builder.parse(input);document.getDocumentElement().normalize();// 获取所有 <r> 标签NodeList nodeList = document.getElementsByTagName("r");// 遍历每个 <r> 标签for (int i = 0; i < nodeList.getLength(); i++) {Node node = nodeList.item(i);if (node.getNodeType() == Node.ELEMENT_NODE) {Element element = (Element) node;// 创建 PlatJuMinBaoXian 对象PlatJuMinBaoXian platJuMinBaoXian = new PlatJuMinBaoXian();platJuMinBaoXian.setJfxmbh(element.getAttribute("jfxmbh"));platJuMinBaoXian.setZznf(element.getAttribute("zznf"));platJuMinBaoXian.setQsnf(element.getAttribute("qsnf"));platJuMinBaoXian.setJfxmmc(element.getAttribute("jfxmmc"));platJuMinBaoXian.setJfxmje(element.getAttribute("jfxmje"));platJuMinBaoXian.setJfrq(element.getAttribute("jfrq"));// 添加到结果列表result.add(platJuMinBaoXian);}}} catch (Exception e) {e.printStackTrace();}return result;}

实体类

@Data
public class PlatJuMinBaoXian {//起始年月private String qsnf;//终止年月private String zznf;//缴费项目编号private String jfxmbh;//缴费项目名称private String jfxmmc ;//缴费金额private String jfxmje;//缴费日期private String jfrq;}

测试

public static void main(String[] args) {String xmlString = "<root>" +"<r jfxmbh=\"C11\" zznf=\"2023\" qsnf=\"2023\" jfxmmc=\"普通个人缴费\" jfxmje=\"350.00000000\" jfrq=\"20230220\" />" +"<r jfxmbh=\"C41\" zznf=\"2023\" qsnf=\"2023\" jfxmmc=\"缴费补贴\" jfxmje=\"30.00000000\" jfrq=\"20230220\" />" +"</root>";String xmlStringNew = "<r jfxmbh=\"C11\" zznf=\"2023\" qsnf=\"2023\" jfxmmc=\"普通个人缴费\" jfxmje=\"350.00000000\" jfrq=\"20230220\" /><r jfxmbh=\"C41\" zznf=\"2023\" qsnf=\"2023\" jfxmmc=\"缴费补贴\" jfxmje=\"30.00000000\" jfrq=\"20230220\" />";String endXml = "<root>" + xmlStringNew + "</root>";List<PlatJuMinBaoXian> result = parse(endXml);result.forEach(System.out::println);}

相关文章:

  • 【Python笔记 03 】运算符
  • 基于大疆行业无人机的特色解决方案-无线通信篇:基于蜂窝以及自组网MESH的无线通信C2链路
  • 一文详解Pytorch环境搭建:Mac电脑pip安装Pytorch开发环境
  • 空间数据工程——如何使用 Python 和 ArcPy 对 Vision Zero 多边形的值进行地理处理
  • Linux 安装pm2并全局可用
  • mysql数据库语言学习
  • 【简单学习】llamaindex环境搭建以及构建RAG
  • 深入理解依赖、Jar 包与 War 包:Java 开发基石探秘
  • 北京理工大学:光梳技术突破实现光场超高维调控
  • 基于PHP+MySQL实现(Web)单词助手网站
  • Embedding与向量数据库__0422
  • mysql too many open files
  • 数字空间与VR有什么关系?什么是数字空间?
  • TikTok X-Gnarly纯算分享
  • 针头式过滤器推荐
  • 游戏工作室为何要更换IP进行多开?工作室使用代理IP要注意什么?
  • CentOS7 环境配置
  • 【随机过程】柯尔莫哥洛夫微分方程总结
  • vscode使用笔记
  • Mujoco robosuite 机器人模型
  • 魏晓栋已任上海崇明区委常委、组织部部长
  • 嫦娥五号《月球样品借用协议》签约,2025中国航天公益形象大使公布
  • 哲学家的生命终章:一场关于存在与消逝的深度对话
  • 水利部启动实施蓄滞洪区建设管理三年行动
  • 上海市长会见璞跃全球创始人亚美迪,建设国际AI创新创业网络中心节点
  • 特朗普激发加拿大爱国热情之下:大选提前投票人数创纪录,魁北克分离情绪被冲淡