본문 바로가기

xml

xml - 예제(지역)

vo와 jsp는 동일(이전 글)/서블릿도 메서드명만 달리하면 됨, html도 액션 서블릿 경로만 바꿔주기

 

유틸 메서드

public static List<KakaoLocalVo> searchXml(String query, String y, String x, int page, int size, int radius){
		List<KakaoLocalVo> list = new ArrayList<KakaoLocalVo>();
		
		try {
			// query Encoding
			query = URLEncoder.encode(query,"utf-8");
			
			String str_url = String.format("https://dapi.kakao.com/v2/local/search/keyword.xml?query=%s&y=%s&x=%s&page=%d&size=%d&radius=%d",
					query,y,x,page,size,radius);
			String KAKAO_APIKEY = MyOpenAPIKey.Kakao.API_Key;
			
			URL url = new URL(str_url);
			HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
			
			urlConn.setRequestProperty("Authorization", KAKAO_APIKEY);
			urlConn.setRequestProperty("Content-Type", "application/xml");
			urlConn.connect();
			
			// xml parsing
			SAXBuilder builder = new SAXBuilder();
			Document doc = builder.build(urlConn.getInputStream());
			
			Element root = doc.getRootElement();
			List<Element> documents_list = (List<Element>)root.getChildren("documents");

			for(Element item : documents_list) {
				String place_name = item.getChildText("place_name");
				String place_url = item.getChildText("place_url");
				String address_name = item.getChildText("address_name");
				String road_address_name = item.getChildText("road_address_name");
				String phone = item.getChildText("phone");
				String xx = item.getChildText("x");
				String yy = item.getChildText("y");
				int distance = 0;
				try {
					distance = Integer.parseInt(item.getChildText("distance"));
				} catch (Exception e) {
					// TODO: handle exception
				}
				
				KakaoLocalVo vo = new KakaoLocalVo();
				vo.setPlace_name(place_name);
				vo.setPlace_url(place_url);
				vo.setAddress_name(address_name);
				vo.setRoad_address_name(road_address_name);
				vo.setPhone(phone);
				vo.setX(xx);
				vo.setY(yy);
				vo.setDistance(distance);
				
				list.add(vo);
				
			}
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		return list;
	}

 

 

'xml' 카테고리의 다른 글

xml - 네이버API활용 예제(책)  (0) 2024.07.08
xml -네이버API활용 예제(쇼핑)  (0) 2024.07.08
네이버 API 어플리케이션 등록/postman download  (0) 2024.07.08
xml - 파싱  (0) 2024.07.08
xmlTest/jdom 설치 환경  (0) 2024.07.08