http를 통해 Google 지오 코드 요청을 구문 분석하기 위해 Java와 XStream을 사용하고 있습니다. 내 생각은 모든 지오 코드 attr (예 : 위도/경도, 도시, provice/상태 등) 주소 클래스를 가질 수 있지만 xstream 함께 xml 구문 분석 문제가 있습니다.xstream을 사용하여 Google 지오 코드를 구문 분석합니다.
<?xml version="1.0" encoding="UTF-8" ?>
<kml xmlns="http://earth.google.com/kml/2.0"><Response>
<name>98 St. Patrick St, Toronto</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark id="p1">
<address>98 St Patrick St, Toronto, ON, Canada</address>
<AddressDetails Accuracy="8" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"> <Country><CountryNameCode>CA</CountryNameCode><CountryName>Canada</CountryName><AdministrativeArea><AdministrativeAreaName>ON</AdministrativeAreaName><Locality><LocalityName>Toronto</LocalityName><Thoroughfare><ThoroughfareName>98 St Patrick St</ThoroughfareName></Thoroughfare><PostalCode><PostalCodeNumber>M5T</PostalCodeNumber></PostalCode></Locality></AdministrativeArea></Country></AddressDetails>
<ExtendedData>
<LatLonBox north="43.6560378" south="43.6497426" east="-79.3864912" west="-79.3927864" />
</ExtendedData>
<Point><coordinates>-79.3896388,43.6528902,0</coordinates></Point>
</Placemark>
</Response></kml>
잘 표시되지 않습니다,하지만 코드의 고기는 AddressDetails 태그에 있습니다
구글 응답이 비슷합니다.
어쨌든 API 용어가 약간 혼란스러워서 Java와 XStream을 처음 접해 보았습니다. 난 그냥 모든 내 태그 (예 : CountryName) 내 주소 개체 (즉, address.country = blah) 내의 속성에 매핑 일부 매퍼를 작성할 수 있어야합니다 주소 개체는 매우 간단합니다, 주로 국가의 문자열 이름 등 및 위도/경도에 대한 수레.
docs와 예제는 각 xml 태그가 객체의 동일한 이름의 속성에 직접 매핑되는 바로 매핑을 보여줍니다. 내 경우에는 태그의 이름이 객체 attr과 다릅니다. 올바른 방향으로의 빠른 포인트는 내가 정말로 찾고있는 것입니다.
+1, XStream은 Java 객체로 시작하여 생성 할 XML을 결정할 때 가장 잘 작동합니다. JAXB는 그 반대이지만 과도 할 수 있습니다. 아마 표준 Java XML DOM 파서를 사용할 것입니다 : XML을 DOM 트리 데이터 구조로 구문 분석하는 데 사용하는 메소드를 작성하고 트리를 통해 사용자가 Address 오브젝트를 작성하는 데 필요한 정보를 선택하십시오. –
JAXB는 Objects 또는 XML로 시작할 수 있습니다. MOXy JAXB 확장을 사용 사례를 쉽게 매핑하는 데 사용할 수있는 내 게시물을 참조하십시오. –