Rumah  >  Artikel  >  Memetakan tag ulangan XML ke objek Java

Memetakan tag ulangan XML ke objek Java

WBOY
WBOYke hadapan
2024-02-13 18:20:09696semak imbas

editor php Apple akan memperkenalkan anda kepada cara memetakan tag ulangan XML ke objek Java dalam artikel ini. XML ialah format pertukaran data yang biasa digunakan, dan objek Java ialah struktur data yang sering kita gunakan dalam pengaturcaraan. Memetakan tag ulangan XML ke objek Java boleh membantu kami memproses dan memanipulasi data dengan lebih mudah. Artikel ini akan memecahkan proses untuk anda secara terperinci dan memberikan contoh praktikal untuk membantu anda memahami dengan lebih baik. Mari kita terokai topik yang menyeronokkan dan praktikal ini bersama-sama!

Kandungan soalan

Saya ada xml seterusnya:

<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>

Saya ingin memetakan data mereka ke objek berikut:

public class cabecera implements serializable {

    /**
     * 
     */
    private static final long serialversionuid = -865317642824095952l;
    
    private int id;
    
    private int tipomensaje;
    
    private datosrecepcion datos;

datosrecepcion ialah kelas dengan pembolehubah berikut:

public class datosrecepcion implements serializable {

    /**
     * 
     */
    private static final long serialversionuid = -6703565058845907875l;
    
    private list<string> fechaenvio;

Untuk memetakan data xml ke objek, lakukan perkara berikut:

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);

Saya ingin tahu cara memetakan tag berulang seperti fechaenvio ke objek java saya. Saya menggunakan versi java 8 dan pada masa ini mereka tidak membenarkan saya menggunakan versi yang lebih tinggi

Terima kasih.

Peta tag ulangan xml ke objek java

Penyelesaian

Anda boleh melakukan ini:

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);

Dalam kelas cabecera

private DatosRecepcion datos = new DatosRecepcion();

Atas ialah kandungan terperinci Memetakan tag ulangan XML ke objek Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam