如何解决如何在对象中转换具有重复字段 iava 8 的 xml
我必须在 java 对象中转换一个 xml 文件并且它工作正常,直到我到达元素跟踪。
<?xml version="1.0" encoding="UTF-8"?>
<ELENCO>
<SPEDIZIONE>
<NumSped><![CDATA[610144853]]></NumSped>
<Bda><![CDATA[0]]></Bda>
<DataPartenza><![CDATA[06/04/2021]]></DataPartenza>
<SedePartenza><![CDATA[M7]]></SedePartenza>
<LocalitaSedePartenza><![CDATA[PAVIA]]></LocalitaSedePartenza>
<Destinatario><![CDATA[simoni c/o marcoccia multiserv]]></Destinatario>
<IndirizzoDestinazione><![CDATA[Via Volsci,30]]></IndirizzoDestinazione>
<CapDestinatario><![CDATA[03100]]></CapDestinatario>
<CittaDestinazione><![CDATA[frosinone]]></CittaDestinazione>
<SedeDestinazione><![CDATA[FROSINONE]]></SedeDestinazione>
<LocalitaSedeDestinazione><![CDATA[Frosinone]]></LocalitaSedeDestinazione>
<ProvinciaSedeDestinazione><![CDATA[FR]]></ProvinciaSedeDestinazione>
<CapSedeDestinazione><![CDATA[03100]]></CapSedeDestinazione>
<IndirizzoSedeDestinazione><![CDATA[Via Armando Vona]]></IndirizzoSedeDestinazione>
<TelefonoSedeDestinazione><![CDATA[+39 0775 937028]]></TelefonoSedeDestinazione>
<FaxSedeDestinazione><![CDATA[+39 0775 880500]]></FaxSedeDestinazione>
<StatoSpedizione><![CDATA[Consegnato]]></StatoSpedizione>
<DataConsegna><![CDATA[07/04/2021]]></DataConsegna>
<OraConsegna><![CDATA[11:57]]></OraConsegna>
<Firma><![CDATA[ARMANDO SIMONI]]></Firma>
<NumeroColli><![CDATA[1]]></NumeroColli>
<Peso><![CDATA[0,4]]></Peso>
<Contrassegno><![CDATA[0,00]]></Contrassegno>
<TRACKING>
<Data><![CDATA[07/04/21]]></Data>
<Ora><![CDATA[11:57]]></Ora>
<Luogo><![CDATA[Frosinone]]></Luogo>
<Stato><![CDATA[CONSEGNATA]]></Stato>
<Note><![CDATA[Armando Simoni]]></Note>
<Codice><![CDATA[906]]></Codice>
<Data><![CDATA[07/04/21]]></Data>
<Ora><![CDATA[09:19]]></Ora>
<Luogo><![CDATA[Frosinone]]></Luogo>
<Stato><![CDATA[Consegna prevista nel corso della giornata odierna]]></Stato>
<Note />
<Codice><![CDATA[905]]></Codice>
<Data><![CDATA[07/04/21]]></Data>
<Ora><![CDATA[09:16]]></Ora>
<Luogo><![CDATA[Frosinone]]></Luogo>
<Stato><![CDATA[Arrivata nella Sede GLS locale.]]></Stato>
<Note />
<Codice><![CDATA[904]]></Codice>
<Data><![CDATA[06/04/21]]></Data>
<Ora><![CDATA[17:50]]></Ora>
<Luogo><![CDATA[Pavia]]></Luogo>
<Stato><![CDATA[Partita dalla sede mittente. In transito.]]></Stato>
<Note />
<Codice><![CDATA[902]]></Codice>
<Data><![CDATA[06/04/21]]></Data>
<Ora />
<Luogo><![CDATA[Pavia]]></Luogo>
<Stato><![CDATA[Spedizione registrata nei nostri sistemi ma non ancora partita]]></Stato>
<Note />
<Codice><![CDATA[901]]></Codice>
</TRACKING>
</SPEDIZIONE>
</ELENCO>
在这个元素中,我有几个重复的字段,我想分成几个对象。如何在列表或数组中进行转换?
这是我用来转换java8 Object中的xml的代码
JAXBContext jaxbContext = JAXBContext.newInstance(Elenco.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Elenco elenco = (Elenco) jaxbUnmarshaller.unmarshal(new StringReader(readLine));
这是 Elenco 课程:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="ELENCO")
@XmlType(name = "",propOrder = {
"SPEDIZIONE"
})
public class Elenco {
private Spedizione SPEDIZIONE;
public Elenco() {
}
public Elenco(Spedizione elenco) {
this.SPEDIZIONE = elenco;
}
public Spedizione getELENCO() {
return SPEDIZIONE;
}
public void setELENCO(Spedizione ELENCO) {
this.SPEDIZIONE = ELENCO;
}
}
Spedizione 类:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "",propOrder = {
"NumSped","Bda","DataPartenza","SedePartenza","LocalitaSedePartenza","Destinatario","IndirizzoDestinazione","CapDestinatario","CittaDestinazione","SedeDestinazione","LocalitaSedeDestinazione","ProvinciaSedeDestinazione","CapSedeDestinazione","IndirizzoSedeDestinazione","TelefonoSedeDestinazione","FaxSedeDestinazione","StatoSpedizione","DataConsegna","OraConsegna","Firma","NumeroColli","Peso","Contrassegno","TRACKING"
})
public class Spedizione{
private String NumSped;
private String Bda;
private String DataPartenza;
private String SedePartenza;
private String LocalitaSedePartenza;
private String Destinatario;
private String IndirizzoDestinazione;
private String CapDestinatario;
private String CittaDestinazione;
private String SedeDestinazione;
private String LocalitaSedeDestinazione;
private String ProvinciaSedeDestinazione;
private String CapSedeDestinazione;
private String IndirizzoSedeDestinazione;
private String TelefonoSedeDestinazione;
private String FaxSedeDestinazione;
private String StatoSpedizione;
private String DataConsegna;
private String OraConsegna;
private String Firma;
private String NumeroColli;
private String Peso;
private String Contrassegno;
private List<Trackparcel> TRACKING;
public String getNumSped() {
return NumSped;
}
public void setNumSped(String NumSped) {
this.NumSped = NumSped;
}
public String getBda() {
return Bda;
}
public void setBda(String Bda) {
this.Bda = Bda;
}
public String getDataPartenza() {
return DataPartenza;
}
public void setDataPartenza(String DataPartenza) {
this.DataPartenza = DataPartenza;
}
public String getSedePartenza() {
return SedePartenza;
}
public void setSedePartenza(String SedePartenza) {
this.SedePartenza = SedePartenza;
}
public String getLocalitaSedePartenza() {
return LocalitaSedePartenza;
}
public void setLocalitaSedePartenza(String LocalitaSedePartenza) {
this.LocalitaSedePartenza = LocalitaSedePartenza;
}
public String getDestinatario() {
return Destinatario;
}
public void setDestinatario(String Destinatario) {
this.Destinatario = Destinatario;
}
public String getIndirizzoDestinazione() {
return IndirizzoDestinazione;
}
public void setIndirizzoDestinazione(String IndirizzoDestinazione) {
this.IndirizzoDestinazione = IndirizzoDestinazione;
}
public String getCapDestinatario() {
return CapDestinatario;
}
public void setCapDestinatario(String CapDestinatario) {
this.CapDestinatario = CapDestinatario;
}
public String getCittaDestinazione() {
return CittaDestinazione;
}
public void setCittaDestinazione(String CittaDestinazione) {
this.CittaDestinazione = CittaDestinazione;
}
public String getSedeDestinazione() {
return SedeDestinazione;
}
public void setSedeDestinazione(String SedeDestinazione) {
this.SedeDestinazione = SedeDestinazione;
}
public String getLocalitaSedeDestinazione() {
return LocalitaSedeDestinazione;
}
public void setLocalitaSedeDestinazione(String LocalitaSedeDestinazione) {
this.LocalitaSedeDestinazione = LocalitaSedeDestinazione;
}
public String getProvinciaSedeDestinazione() {
return ProvinciaSedeDestinazione;
}
public void setProvinciaSedeDestinazione(String ProvinciaSedeDestinazione) {
this.ProvinciaSedeDestinazione = ProvinciaSedeDestinazione;
}
public String getCapSedeDestinazione() {
return CapSedeDestinazione;
}
public void setCapSedeDestinazione(String CapSedeDestinazione) {
this.CapSedeDestinazione = CapSedeDestinazione;
}
public String getIndirizzoSedeDestinazione() {
return IndirizzoSedeDestinazione;
}
public void setIndirizzoSedeDestinazione(String IndirizzoSedeDestinazione) {
this.IndirizzoSedeDestinazione = IndirizzoSedeDestinazione;
}
public String getTelefonoSedeDestinazione() {
return TelefonoSedeDestinazione;
}
public void setTelefonoSedeDestinazione(String TelefonoSedeDestinazione) {
this.TelefonoSedeDestinazione = TelefonoSedeDestinazione;
}
public String getFaxSedeDestinazione() {
return FaxSedeDestinazione;
}
public void setFaxSedeDestinazione(String FaxSedeDestinazione) {
this.FaxSedeDestinazione = FaxSedeDestinazione;
}
public String getStatoSpedizione() {
return StatoSpedizione;
}
public void setStatoSpedizione(String StatoSpedizione) {
this.StatoSpedizione = StatoSpedizione;
}
public String getDataConsegna() {
return DataConsegna;
}
public void setDataConsegna(String DataConsegna) {
this.DataConsegna = DataConsegna;
}
public String getOraConsegna() {
return OraConsegna;
}
public void setOraConsegna(String OraConsegna) {
this.OraConsegna = OraConsegna;
}
public String getFirma() {
return Firma;
}
public void setFirma(String Firma) {
this.Firma = Firma;
}
public String getNumeroColli() {
return NumeroColli;
}
public void setNumeroColli(String NumeroColli) {
this.NumeroColli = NumeroColli;
}
public String getPeso() {
return Peso;
}
public void setPeso(String Peso) {
this.Peso = Peso;
}
public String getContrassegno() {
return Contrassegno;
}
public void setContrassegno(String Contrassegno) {
this.Contrassegno = Contrassegno;
}
public List<Trackparcel> getTracking() {
return TRACKING;
}
public void setTracking(List<Trackparcel> tracking) {
this.TRACKING = tracking;
}
}
最后一个,TrackingParcel 类:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "",propOrder = {
"Data","Ora","Luogo","Stato","Note","Codice"
})
public class Trackparcel {
private String Data;
private String Ora;
private String Luogo;
private String Stato;
private String Note;
private String Codice;
public Trackparcel() {
}
public Trackparcel(String Data,String Ora,String Luogo,String Stato,String Note,String Codice) {
this.Data = Data;
this.Ora = Ora;
this.Luogo = Luogo;
this.Stato = Stato;
this.Note = Note;
this.Codice = Codice;
}
public String getData() {
return Data;
}
public void setData(String Data) {
this.Data = Data;
}
public String getOra() {
return Ora;
}
public void setOra(String Ora) {
this.Ora = Ora;
}
public String getLuogo() {
return Luogo;
}
public void setLuogo(String Luogo) {
this.Luogo = Luogo;
}
public String getStato() {
return Stato;
}
public void setStato(String Stato) {
this.Stato = Stato;
}
public String getNote() {
return Note;
}
public void setNote(String Note) {
this.Note = Note;
}
public String getCodice() {
return Codice;
}
public void setCodice(String Codice) {
this.Codice = Codice;
}
}
在某些课程中,我删除了构造函数,只是为了便于阅读。 谢谢你的帮助。
解决方法
我找到了一些我可以使用并且适用于我的案例的东西
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "",propOrder = {
"Data","Ora","Luogo","Stato","Note","Codice"
})
public class Trackparcel {
private List<String> Note;
private List<String> Data;
private List<String> Luogo;
private List<String> Stato;
private List<String> Codice;
private List<String> Ora;
public Trackparcel() {
}
public Trackparcel(List<String> Note,List<String> Data,List<String> Luogo,List<String> Stato,List<String> Codice,List<String> Ora) {
this.Note = Note;
this.Data = Data;
this.Luogo = Luogo;
this.Stato = Stato;
this.Codice = Codice;
this.Ora = Ora;
}
public List<String> getNote() {
return Note;
}
public void setNote(List<String> Note) {
this.Note = Note;
}
public List<String> getData() {
return Data;
}
public void setData(List<String> Data) {
this.Data = Data;
}
public List<String> getLuogo() {
return Luogo;
}
public void setLuogo(List<String> Luogo) {
this.Luogo = Luogo;
}
public List<String> getStato() {
return Stato;
}
public void setStato(List<String> Stato) {
this.Stato = Stato;
}
public List<String> getCodice() {
return Codice;
}
public void setCodice(List<String> Codice) {
this.Codice = Codice;
}
public List<String> getOra() {
return Ora;
}
public void setOra(List<String> Ora) {
this.Ora = Ora;
}
}
结果,我得到了一个包含 Note、Data、Luogo、Stato、Codice、Ora 元素的列表。 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。