안드로이드 개발 질문/답변
(글 수 45,052)
네이버 api xml 파싱 질문입니다. 꼭 좀 봐주세요 선배님들
http://openapi.map.naver.com/api/geocode.php?key="네이버키 x "=utf-8&coord=latlng&query=정자동
위 주소를 호출하면
밑에 처럼 쭉나옵니다.
<geocode xmlns="naver:openapi">
<userquery>
<![CDATA[ 정자동 ]]>
</userquery>
<total>9</total>
<item>
<point>
<x>127.1114893</x>
<y>37.3614463</y>
</point>
<address>경기도 성남시 분당구 정자동</address>
<addrdetail>
<sido>
<![CDATA[ 경기도 ]]>
<sigugun>
<![CDATA[ 성남시 분당구 ]]>
<dongmyun>
<![CDATA[ 정자동 ]]>
</dongmyun>
</sigugun>
</sido>
</addrdetail>
</item>
이 내용을 파싱할려고
자바단에서 밑에 소스로 작성했습니다.
String addr = "정자동";
String KeyValue = "http://openapi.map.naver.com/api/geocode.php?key="+naverKey+"&encoding=utf- 8&coord=latlng&query="+ addr;
URL url = new URL("KeyValue);
URLConnection con= url.openConnection();
InputStream is = con.getInputStream();
XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance();
XmlPullParser parser = parserCreator.newPullParser();
parserCreator.setNamespaceAware(true);
parser.setInput(is, "UTF-8");
int parserEvent = parser.getEventType();
while (parserEvent != XmlPullParser.END_DOCUMENT) {
switch(parserEvent) {
case XmlPullParser.START_TAG:
String tag = parser.getName();
Log.w("tag", "tag" + tag);
break;
}
이렇게 하면 위에 xml 대로 tag 가
<geocode xmlns="naver:openapi">
<userquery>
<total>
<item>
<point>
<x>
<y>
<address>
<addrdetail>
이런식으로 쭉 찍혀야 하는데
<geocode xmlns="naver:openapi">
<userquery>
<total>
여기까지 3개만 찍히고
<total> 밑으로는 안찍힙니다.
정말 미쳐버리겟네요.. ㅠㅠ 3일째 별별 검색을
다해보고 안되서 이렇게 요청합니다.
힌트나 비슷한 코드 작성한신분 있으시면 도움좀 주세요
제발 부탁합니다. 선배님들




switch문 밖에
parserEvent = parser.next();
이소스 넣어보세요
//---------------------------------------------------//