Я использую Java и XStream для анализа запроса геокодирования Google по http. Моя идея состоит в том, чтобы иметь класс Address со всеми атрибутами геокода (т. Е. Lat / long, city, provice / state и т. Д.), Но у меня возникают проблемы при разборе 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.
В любом случае, я новичок в Java и XStream, поэтому терминология API меня немного смущает. Мне просто нужно иметь возможность написать какой-то маппер, который отображает все эти теги (например, CountryName) на атрибут в моем объекте Address (т.е. address.country = blah). Адресный объект будет довольно простым, в основном это просто строки для страны имя и т. д. и плавает на лат / лонг.
В документах и примере просто показано прямое сопоставление, где каждый тег xml отображается непосредственно на атрибут с тем же именем объекта. В моем случае, однако, теги названы иначе, чем объект attr. Быстрая точка в правильном направлении - это все, что я действительно ищу.