XML解析成实体类
说明:直接上干货,不废话
解析方法
go
public static List<PlatJuMinBaoXian> parse(String xmlString) {
List<PlatJuMinBaoXian> result = new ArrayList<>();
try {
// 创建 DocumentBuilder
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// 将字符串转换为输入流
ByteArrayInputStream input = new ByteArrayInputStream(xmlString.getBytes("UTF-8"));
// 解析 XML
Document 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;
}
实体类
go
@Data
public class PlatJuMinBaoXian {
//起始年月
private String qsnf;
//终止年月
private String zznf;
//缴费项目编号
private String jfxmbh;
//缴费项目名称
private String jfxmmc ;
//缴费金额
private String jfxmje;
//缴费日期
private String jfrq;
}
测试
go
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);
}