일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 서브쿼리
- http https
- KOSA
- TM128
- 2개 테이블
- map api v3
- ajax 동기방식처리
- partition by
- String[]
- ant path pattern
- 컴퓨터 드라이버
- multipart
- update
- checkbox 값처리
- String 배열
- mysql trigger
- mysql
- extundelete
- group by max
- jquery selectbox change
- remote ip
- eclipse hotdeploy
- 아이폰키보드
- ajax async
- 주소 좌표변환
- 폐업자에 대한 업종등의 정보내역
- 한국소프트웨어산업협회
- 첫주 및 마지막주 날짜 전체 포함
- 접속ip
- Oracle
- Today
- Total
하은양 믿음군 효실맘 호홍홍집s
기상청 RSS xml 파싱처리하기 본문
참조 : http://deoki.tistory.com/54
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="org.w3c.dom.*"%>
<%@ page import="javax.xml.parsers.*"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String urlStr = "http://www.kma.go.kr/wid/queryDFSRSS.jsp?zone=3114056000";
//서버에서리턴될 XML데이터의 엘리먼트 이름 배열
String[] fieldNames ={"temp", "wfKor", "wfEn", "pop", "hour", "day"};
//각 게시물하나에 해당하는 XML 노드를 담을 리스트
ArrayList<HashMap<String,String>> pubList = new ArrayList<HashMap<String,String>>();
String wfKor = "맑음";
String imgWfKor = "ico01";
String wfTemp = "18";
String wfKor1 = "맑음";
String imgWfKor1 = "ico01";
String wfTemp1 = "18";
String wfKor2 = "";
String imgWfKor2 = "";
String wfTemp2 = "";
try{
//XML파싱 준비
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
DocumentBuilder b = f.newDocumentBuilder();
//위에서 구성한 URL을 통해 XMl 파싱 시작
Document doc = b.parse(urlStr);
doc.getDocumentElement().normalize();
//서버에서 응답한 XML데이터를 data(발행문서 1개 해당)태그로 각각 나눔(파라미터로 요청한 size항목의 수만큼)
NodeList items = doc.getElementsByTagName("data");
//for 루프시작
for(int i = 0; i < items.getLength(); i++){
//i번째 publication 태그를 가져와서
Node n = items.item(i);
Element e = (Element) n;
HashMap<String,String> pub = new HashMap<String,String>();
//for 루프 시작
for(String name : fieldNames){
//"hour", "day", "temp", "tmx", "tmn", "sky", "pty", "wfKor"....에 해당하는 값을 XML 노드에서 가져옴
NodeList titleList = e.getElementsByTagName(name);
Element titleElem = (Element) titleList.item(0);
Node titleNode = titleElem.getChildNodes().item(0);
// 가져온 XML 값을 맵에 엘리먼트 이름 - 값 쌍으로 넣음
pub.put(name, titleNode.getNodeValue());
}
//데이터가 전부 들어간 맵을 리스트에 넣고 화면에 뿌릴 준비.
pubList.add(pub);
}
}catch(Exception ee){
ee.printStackTrace();
}
for(int i = 0; i < pubList.size(); i++){
HashMap<String,String> pub = pubList.get(i);
String tmpWfKor = pub.get("wfKor");
if(tmpWfKor == null) tmpWfKor = "";
String tmpImgWfKor = "ico01";
String tmpWfDay = pub.get("day");
String tmpWfHour = pub.get("hour");
if(tmpWfKor.equals("구름 조금")) tmpImgWfKor = "ico02";
else if(tmpWfKor.equals("구름 많음")) tmpImgWfKor = "ico03";
else if(tmpWfKor.equals("흐림")) tmpImgWfKor = "ico04";
else if(tmpWfKor.equals("비")) tmpImgWfKor = "ico05";
else if(tmpWfKor.equals("눈/비")) tmpImgWfKor = "ico06";
else if(tmpWfKor.equals("눈")) tmpImgWfKor = "ico07";
String tmpWfTemp = pub.get("temp");
if(i == 0){
wfKor = tmpWfKor;
imgWfKor = tmpImgWfKor;
wfTemp = tmpWfTemp;
}
if(tmpWfDay.equals("1") && tmpWfHour.equals("9")){
wfKor1 = tmpWfKor;
imgWfKor1 = tmpImgWfKor;
wfTemp1 = tmpWfTemp;
}
// 모레 날씨 정보 받기
if(!tmpWfKor.equals("") && tmpWfDay.equals("2") && tmpWfHour.equals("3")){
wfKor2 = tmpWfKor;
imgWfKor2 = tmpImgWfKor;
wfTemp2 = tmpWfTemp;
}
if(!tmpWfKor.equals("") && tmpWfDay.equals("2") && tmpWfHour.equals("6")){
wfKor2 = tmpWfKor;
imgWfKor2 = tmpImgWfKor;
wfTemp2 = tmpWfTemp;
}
if(!tmpWfKor.equals("") && tmpWfDay.equals("2") && tmpWfHour.equals("9")){
wfKor2 = tmpWfKor;
imgWfKor2 = tmpImgWfKor;
wfTemp2 = tmpWfTemp;
}
}
%>
<p class="dateweather"><%=imgWfKor%>...<%=wfKor%>...<%=wfTemp%>°C</p>
<p class="dateweather"><%=imgWfKor1%>...<%=wfKor1%>...<%=wfTemp1%>°C</p>
<p class="dateweather"><%=imgWfKor2%>...<%=wfKor2%>...<%=wfTemp2%>°C</p>
</body>
</html>
'가벼운 배움 > jsp' 카테고리의 다른 글
Multipart 업로드시 String[] 배열(checkbox 값같은것) 처리하기 예제 (0) | 2017.01.25 |
---|---|
접속 IP 구하기 (0) | 2016.12.26 |
jeus에서 jstl fmt:formatData 시 인코딩이 제대로 적용안될때 (1) | 2016.07.27 |
모바일기기 접속 여부 체크하기. (0) | 2016.06.28 |
javascript encodeURIComponent() 함수를 jsp URLDecode.decode()변환시 한글깨짐 (1) | 2016.06.14 |