xml파싱 질문드립니다.. 웹에 있는 내용

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!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=EUC-KR">
<title>Insert title here</title>
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
 
  $.ajax({
   type:"get"
   ,dataType:"xml"
   ,url:"weather.xml"
   
   ,success:function(xml){
    if($(xml).find("data").length > 0){
     $(xml).find("data").each(function() {//each >> for문 같은기ㅇㅇ
      
      
      var numEf = $(this).find("numEf").text();
      var tmEf = $(this).find("tmEf").text();
      var wf = $(this).find("wf").text();
      var tmn = $(this).find("tmn").text();
      var tmx = $(this).find("tmx").text();
      var reliability = $(this).find("reliability").text();
      
      
      $('#a').append(numEf).append(tmEf).append(wf).append(tmn).append(tmx).append(reliability);
     
      //$('#b').append(wf);
      //$('#c').append(tmn);
      //$('#d').append(tmx);
      //$('#e').append(reliability);
            
      
     });
    }
     var wf1 = $(xml).find("wf").text();
     $('#aa').append(wf1);
     //alert(wf1);
    
   }
   ,errorr:function(){alert("xml error!!");}
  });
</script>
</head>
<body>
 <span id = "a"></span>
 <br>
 <br>
 <span id = "aa"></span>
 <!-- span id = "b"></span>
 <span id = "c"></span>
 <span id = "d"></span>
 <span id = "e"></span-->
 
</body>
</html>

 

 

-----------------------------------------------------------------------weather.jsp 입니다.

<?xml version="1.0" encoding="UTF-8"?>
<wid>
<header>
<title>제주도 육상주간예보</title>
<tm>201305160600</tm>
<wf>
<![CDATA[제주도남쪽해상을 지나는 저기압의 영향으로 18일 오후부터 19일 오전사이에 비가 오겠고, 그 밖의 날은 고기압 가장자리에 들어 가끔 구름많겠습니다. <br /><br />기온은 평년(최저기온 : 14~15도, 최고기온 : 22도)과 비슷하거나 조금 높겠습니다.<br /><br />강수량은 평년(강수량 : 2~4mm)과 비슷하겠습니다.<br /> <br />바다의 물결은 18일부터 19일까지 2~4m로 높게 일겠고, 그 밖의 날은 1~3m로 일겠습니다.]]>
</wf>
</header>

<body>
<location wl_ver="2" province="11G00000" city="11G00201">
<province code="11G00000">제주도</province>
<city code="11G00201">제주</city>

<data>
<numEf>2</numEf>
<tmEf>2013-05-18</tmEf>
<wf>흐리고 비</wf>
<tmn>16</tmn>
<tmx>20</tmx>
<reliability>보통</reliability>
</data>

<data>
<numEf>3</numEf>
<tmEf>2013-05-19</tmEf>
<wf>흐리고 비</wf>
<tmn>17</tmn> <tmx>21</tmx>
<reliability>보통</reliability>
</data>

<data>
<numEf>4</numEf>
<tmEf>2013-05-20</tmEf>
<wf>구름조금</wf>
<tmn>14</tmn>
<tmx>23</tmx>
<reliability>보통</reliability>
</data>

<data>
<numEf>5</numEf>
<tmEf>2013-05-21</tmEf>
<wf>구름많음</wf>
<tmn>15</tmn>
<tmx>23</tmx>
<reliability>낮음</reliability>
</data>

<data>
<numEf>6</numEf>
<tmEf>2013-05-22</tmEf>
<wf>구름많음</wf>
<tmn>15</tmn>
<tmx>24</tmx>
<reliability>보통</reliability>
</data>

<data>
<numEf>7</numEf>
<tmEf>2013-05-23</tmEf>
<wf>구름조금</wf>
<tmn>15</tmn>
<tmx>22</tmx>
<reliability>보통</reliability>
</data>

</location>

<location wl_ver="2" province="11G00000" city="11G00401">
<province code="11G00000">제주도</province>
<city code="11G00401">서귀포</city>
<data> <numEf>2</numEf>
<tmEf>2013-05-18</tmEf>
<wf>흐리고 비</wf>
<tmn>18</tmn>
<tmx>21</tmx>
<reliability>보통</reliability>
</data>

<data>
<numEf>3</numEf>
<tmEf>2013-05-19</tmEf>
<wf>흐리고 비</wf>
<tmn>17</tmn>
<tmx>21</tmx>
<reliability>보통</reliability>
</data>

<data>
<numEf>4</numEf>
<tmEf>2013-05-20</tmEf>
<wf>구름조금</wf>
<tmn>15</tmn>
<tmx>24</tmx>
<reliability>보통</reliability>
</data>

<data>
<numEf>5</numEf>
<tmEf>2013-05-21</tmEf>
<wf>구름많음</wf>
<tmn>15</tmn>
<tmx>24</tmx>
<reliability>낮음</reliability>
</data>

<data>
<numEf>6</numEf>
<tmEf>2013-05-22</tmEf>
<wf>구름많음</wf>
<tmn>16</tmn>
<tmx>26</tmx>
<reliability>보통</reliability>
</data>
 
<data>
<numEf>7</numEf>
<tmEf>2013-05-23</tmEf>
<wf>구름조금</wf> <tmn>16</tmn> <tmx>23</tmx>
<reliability>보통</reliability>
</data>

</location>
</body>
</wid>

--------------------------------------------------------------------------------------weather.xml 입니다..

weather에 있는 내용을 읽어오는건 됩니다.

하지만

http://www.kma.go.kr/weather/forecast/mid-term-xml.jsp?stnId=184 여기 사이트 주소에 xml 내용을 읽어오는게 되지않습니다..

단순히 weather.jsp 의 url 에 다가 weather.xml 대신 이 도메인을 넣으면 읽어올수 없는건가요?

다른 것 추가 해야할것이 또이나요??..ㅜ

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 기상청의 XML 페이지의 HTTP 헤더가 text/xml이 아니고 text/plain으로 잘못 설정돼 있어서 자바스크립트의 XMLHttpRequest()로는 자료를 가져올 수 없습니다.

    따라서 jQuery Ajax로 기상청 자료를 가져올 수 없답니다.

    대신 php등 서버프로그래밍 언어로 소켓으로 접속해서 가져오는건 가능합니다.

    정후닝님도 weather.jsp를 읽어오는 것을 보니 서버에서 먼저 기상청 자료를 가져오고 그것을 jquery로 불러오는 방식인듯 하네요.

    결론은 기상청의 잘못입니다... ㅜㅜ;

  • 항상 좋은 답변 감사드립니다 ^-^ㅎㅎ

    날씨 API가 요즘 다 사라져버렸더라구요..

    그래서 기상청 API를 하고 있었는데..

    그렇다면 봇님 말씀이면 PHP를 이용해서 가져와야 한다는 말씀이신가욤//

    하.. 제이쿼리도 이제 갓 배웠는데 ㅜㅋㅋ

    알겠습니다 ㅎㅎ

    저 그런데 text/plain이라는것은어디서 알수가 있는것인가요??

    xml파일 보면 plain 이라는 것을 찾을수가없어서요..

  • php, jsp, asp등 서버 프로그래밍 언어로 해당 페이지 내용을 가져와서 작업을 진행하셔야 할 듯 해요~

    text/plain은 헤더 정보로써 화면에 출력되지 않는 정보입니다.

    https://en.wikipedia.org/wiki/Internet_media_type 이쪽을 참고 하시면 아시겠지만

    gif 이미지를 브라우저에 불러오면 http 헤더에 image/gif 라는 정보를 함께 보내줍니다. 역시 화면에 출력되는건 이미지 뿐이겠죠

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기