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 数据映射到对象,请执行以下操作:
立即学习“Java免费学习笔记(深入)”;
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中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号