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中文网其他相关文章!