php小编苹果在本文将向您介绍如何将XML重复标记映射到Java对象。XML是一种常用的数据交换格式,而Java对象是我们在编程中经常使用的数据结构。将XML重复标记映射到Java对象可以帮助我们更方便地处理和操作数据。本文将为您详细解析这个过程,并提供实际示例来帮助您更好地理解。让我们一起来探索这个有趣且实用的主题吧!
问题内容
我有下一个 xml:
<mensajews> <respuestagetcabecerastype> <cabeceras> <cabecera> <id>1234</id> <tipomensaje>3</tipomensaje> <datos> <fechaenvio>2023-12-13t00:05:00</fechaenvio> <fechaenvio>2023-12-14t00:05:00</fechaenvio> </datos> </cabecera> </cabeceras> </respuestagetcabecerastype> </mensajews>
我想将他们的数据映射到以下对象:
public class cabecera implements serializable { /** * */ private static final long serialversionuid = -865317642824095952l; private int id; private int tipomensaje; private datosrecepcion datos;
datosrecepcion 是一个具有以下变量的类:
public class datosrecepcion implements serializable { /** * */ private static final long serialversionuid = -6703565058845907875l; private list<string> fechaenvio;
要将 xml 数据映射到对象,请执行以下操作:
List<Cabecera> listaCabeceras = new ArrayList<Cabecera>(); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new InputSource(new StringReader(xml.toString()))); System.out.println("Root element: " + document.getDocumentElement().getNodeName()); NodeList nList = document.getElementsByTagName("cabecera"); for(int i = 0; i < nList.getLength(); i++) { Node nNode = nList.item(i); System.out.println("Current Element: " + nNode.getNodeName()); Element element = (Element) nNode; System.out.println("id: " + element.getElementsByTagName("id").item(0).getTextContent()); System.out.println("Tipo de mensaje: " + element.getElementsByTagName("tipoMensaje").item(0).getTextContent()); System.out.println("Fecha de Envio: " + element.getElementsByTagName("fechaEnvio").item(0).getTextContent()); Cabecera cabecera = new Cabecera(); cabecera.setId(Integer.parseInt(element.getElementsByTagName("id").item(0).getTextContent())); cabecera.setTipoMensaje(Integer.parseInt(element.getElementsByTagName("tipoMensaje").item(0).getTextContent())); //cabecera.getDatos().setFechaEnvio(element.getElementsByTagName("fechaEnvio").item(0).getTextContent()); listaCabeceras.add(cabecera);
我想知道如何将 fechaenvio 等重复标签映射到我的 java 对象。我使用 java 8 版本,他们目前不让我使用更高版本
谢谢。
将 xml 重复标记映射到 java 对象
解决方法
你可以这样做:
node datosnode = element.getelementsbytagname("datos").item(0); element elementdatos = (element) datosnode; nodelist fechaenviolist = elementdatos.getelementsbytagname("fechaenvio"); list<string> data = new arraylist<>(); for (i = 0; i < fechaenviolist.getlength(); i++) { data.add(fechaenviolist.item(i).gettextcontent()); } cabecera.getdatos().setfechaenvio(data); listacabeceras.add(cabecera);
在 cabecera 类
private DatosRecepcion datos = new DatosRecepcion();
以上是将 XML 重复标记映射到 Java 对象的详细内容。更多信息请关注PHP中文网其他相关文章!
声明
本文转载于:stackoverflow。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前ByDDD
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver CS6
视觉化网页开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中