JAXB を使用して、この XML (上記のリンク) からデータを取得しようとしています。私の目標は、特定の住所の緯度と経度を取得することです。
これらのクラスを作成しましたが、バインディング アノテーションがありません。これを入手するのを手伝ってください、事前に感謝します
編集:コードが機能するようになったので、回答に新しいコードを貼り付けます
public class JAXBExample {
public static void main(String[] args) {
try {
File file = new File("GeoLocation.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(GeocodeResponse.class);//(GeocodeResponse.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
GeocodeResponse latLong = (GeocodeResponse) jaxbUnmarshaller.unmarshal(file);
System.out.println(latLong);
// System.out.println(latLong.getLatitude()+ ", "+latLong.getLongitude());
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
@XmlType(propOrder={"latitude","longitude"})
public class Location {
double lat;
double lng;
// @XmlElement(name="lat")
public double getLatitude() {
return lat;
}
// @XmlElement
@XmlElement(name="lat")
public void setLatitude(double latitude) {
this.lat = latitude;
}
// @XmlElement(name="lng")
public double getLongitude() {
return lng;
}
// @XmlAttribute
@XmlElement(name="lng")
public void setLongitude(double longitude) {
this.lng = longitude;
}
}
@XmlType(propOrder={"geometry"})
public class Geometry {
Location aLocation;
// @XmlElement(name="location")
public Location getaLocation() {
return aLocation;
}
@XmlElement(name="location")
public void setaLocation(Location aLocation) {
this.aLocation = aLocation;
}
}
@XmlType(propOrder={"result"})
public class Result {
Geometry aGeometry;
// @XmlElement(name="geometry")
public Geometry getaGeometry() {
return aGeometry;
}
@XmlElement(name="geometry")
public void setaGeometry(Geometry aGeometry) {
this.aGeometry = aGeometry;
}
}
@XmlRootElement
public class GeocodeResponse {
Result aResult;
public Result getaResult() {
return aResult;
}
@XmlElement(name = "result")
public void setaResult(Result aResult) {
this.aResult = aResult;
}
}