Ich arbeite an einem Schulprojekt, bei dem ich einige XML-Werte von einer API an ein Java-Objekt binden muss. Ich bin in der Lage, alle Elemente zu bekommen, aber ich kann nicht das Attribut eines bestimmten Elements bekommen. Ich habe nach einer Lösung gesucht, konnte aber keine finden.Unmarshales XML-Attribut zum Objektwert
Ich habe dieses Stück XML-Code, den ich mit JAXB zu einem Java-Objekt entpacken möchte. Das Attribut, das ich erhalten möchte, ist "Änderungen" in Departuretrack.
<Departures>
<DepartingTrain>
<Id>220</Id>
<DepartureTime>2017-03-07T11:03:00+0100</DepartureTime>
<DepartureTrack changes="false">5</DepartureTrack>
</DepartingTrain>
<DepartingTrain>
<Id>637</Id>
<DepartureTime>2017-03-07T11:18:00+0100</DepartureTime>
<DepartureTrack changes="false">12</DepartureTrack>
</DepartingTrain>
</Departures>
Ich habe derzeit dieses Objekt, es funktioniert für alle Elemente. Ich weiß nicht, wie ich das Attribut "Änderungen" erhalten und in dieses Objekt einfügen kann.
Ich erstelle eine Liste mit allen Abfahrten mit diesem Objekt.
@Entity
@Getter
@Setter
@NoArgsConstructor
@XmlRootElement(name="Departures")
@XmlAccessorType(XmlAccessType.FIELD)
public class DepartureList {
@Id
@GeneratedValue
private long id;
@XmlElement(name="DepartingTrain")
@OneToMany
private List<Departure> departures = new ArrayList<>();
}
So sieht mein Unmarshaller aus.
Kann jemand dieses Attribut vom XML-Blatt erhalten und in das Java-Objekt einfügen?
Richtig. Sie können String auch in Boolean (oder boolesch) ändern, wenn das Attribut nur boolesche Wertliterale enthält (und diese sind erforderlich). –