ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 003. HTML 파싱하기 - 속성읽기
    Java 2015. 7. 29. 17:32

    속성읽기

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    import java.io.IOException;
     
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
     
    // 속성으로 읽기
    public class Jsoup09 {
        public static void main(String[] args) {
            Document document = null;
            try {
                String url = "http://www.kma.go.kr/XML/weather/sfc_web_map.xml";
                document = Jsoup.connect(url).get();
     
                Elements date = document.select("weather");
                String dateStr = date.attr("year"+ "년 ";
                dateStr += date.attr("month"+ "월 ";
                dateStr += date.attr("day"+ "일 ";
                dateStr += date.attr("hour"+ "시";
                System.out.println(dateStr);
                
                Elements locals = document.select("local");
                for (Element local : locals) {
                    String area = local.text();
                    String desc = local.attr("desc");
                    if(desc.trim().equals("-")) desc="";
                    String ta = local.attr("ta");
                    System.out.print(area +"(현재온도 : " + ta);
                    System.out.println((!desc.equals("") ? ", " : ""+ desc + ")");
                }
     
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
     
     
     
     
    cs

    원본

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <current xmlns="current">
      <weather year="2015" month="07" day="29" hour="16">
        <local stn_id="95" icon="" desc="-" ta="25.8" rn_hr1="61.0">철원</local>
        <local stn_id="98" icon="" desc="-" ta="27.0" rn_hr1="12.9">동두천</local>
        <local stn_id="99" icon="" desc="-" ta="27.5" rn_hr1="10.1">파주</local>
        <local stn_id="100" icon="" desc="-" ta="23.0" rn_hr1="5.5">대관령</local>
        <local stn_id="101" icon="04" desc="흐림" ta="26.6" rn_hr1="8.8">춘천</local>
        <local stn_id="102" icon="17" desc="박무" ta="28.4" rn_hr1="0.2">백령도</local>
        <local stn_id="104" icon="03" desc="구름많음" ta="30.0" rn_hr1="1.0">북강릉</local>
        <local stn_id="105" icon="" desc="-" ta="30.1" rn_hr1="1.0">강릉</local>
        <local stn_id="106" icon="" desc="-" ta="27.8" rn_hr1="3.0">동해</local>
        <local stn_id="108" icon="04" desc="흐림" ta="28.2" rn_hr1="4.0">서울</local>
        <local stn_id="112" icon="17" desc="박무" ta="28.0" rn_hr1="24.4">인천</local>
        <local stn_id="114" icon="" desc="-" ta="29.0" rn_hr1="16.5">원주</local>
        <local stn_id="119" icon="17" desc="박무" ta="28.8" rn_hr1="64.7">수원</local>
        <local stn_id="121" icon="" desc="-" ta="25.4" rn_hr1="13.6">영월</local>
        <local stn_id="127" icon="" desc="-" ta="28.2" rn_hr1="44.8">충주</local>
        <local stn_id="129" icon="03" desc="구름많음" ta="29.0" rn_hr1="25.8">서산</local>
        <local stn_id="130" icon="" desc="-" ta="28.6" rn_hr1="0.9">울진</local>
        <local stn_id="131" icon="17" desc="박무" ta="29.7" rn_hr1="15.0">청주</local>
        <local stn_id="133" icon="17" desc="박무" ta="30.1" rn_hr1="31.8">대전</local>
        <local stn_id="135" icon="" desc="-" ta="30.2" rn_hr1="4.5">추풍령</local>
        <local stn_id="136" icon="04" desc="흐림" ta="27.5" rn_hr1="17.0">안동</local>
        <local stn_id="137" icon="" desc="-" ta="30.2" rn_hr1="21.2">상주</local>
        <local stn_id="138" icon="02" desc="구름조금" ta="32.9" rn_hr1="0.4">포항</local>
        <local stn_id="143" icon="04" desc="흐림" ta="30.7" rn_hr1="0.5">대구</local>
        <local stn_id="146" icon="04" desc="흐림" ta="29.7" rn_hr1="2.3">전주</local>
        <local stn_id="155" icon="02" desc="구름조금" ta="31.1" rn_hr1="0.0">창원</local>
        <local stn_id="159" icon="17" desc="박무" ta="29.4" rn_hr1="2.5">부산</local>
        <local stn_id="172" icon="" desc="-" ta="32.4" rn_hr1="0.0">고창</local>
        <local stn_id="175" icon="" desc="-" ta="30.0" rn_hr1="0.1">진도(첨찰산)</local>
        <local stn_id="185" icon="" desc="-" ta="27.8" rn_hr1="0.0">고산</local>
        <local stn_id="201" icon="" desc="-" ta="27.3" rn_hr1="2.5">강화</local>
        <local stn_id="202" icon="" desc="-" ta="27.1" rn_hr1="12.0">양평</local>
        <local stn_id="203" icon="" desc="-" ta="28.8" rn_hr1="24.8">이천</local>
        <local stn_id="211" icon="" desc="-" ta="25.1" rn_hr1="6.0">인제</local>
        <local stn_id="212" icon="" desc="-" ta="27.8" rn_hr1="3.5">홍천</local>
        <local stn_id="216" icon="" desc="-" ta="25.5" rn_hr1="5.3">태백</local>
        <local stn_id="217" icon="" desc="-" ta="24.9" rn_hr1="11.5">정선군</local>
        <local stn_id="221" icon="" desc="-" ta="25.9" rn_hr1="17.0">제천</local>
        <local stn_id="226" icon="" desc="-" ta="28.2" rn_hr1="17.0">보은</local>
        <local stn_id="232" icon="" desc="-" ta="30.0" rn_hr1="22.0">천안</local>
        <local stn_id="235" icon="" desc="-" ta="28.8" rn_hr1="5.3">보령</local>
        <local stn_id="236" icon="" desc="-" ta="30.8" rn_hr1="8.5">부여</local>
        <local stn_id="238" icon="" desc="-" ta="31.3" rn_hr1="11.0">금산</local>
        <local stn_id="243" icon="" desc="-" ta="32.5" rn_hr1="0.1">부안</local>
        <local stn_id="245" icon="" desc="-" ta="33.1" rn_hr1="0.0">정읍</local>
        <local stn_id="248" icon="" desc="-" ta="30.1" rn_hr1="0.5">장수</local>
        <local stn_id="251" icon="" desc="-" ta="32.5" rn_hr1="0.5">고창군</local>
        <local stn_id="253" icon="" desc="-" ta="33.2" rn_hr1="0.0">김해시</local>
        <local stn_id="254" icon="" desc="-" ta="33.1" rn_hr1="0.3">순창군</local>
        <local stn_id="255" icon="" desc="-" ta="32.4" rn_hr1="0.0">북창원</local>
        <local stn_id="257" icon="" desc="-" ta="32.6" rn_hr1="0.0">양산시</local>
        <local stn_id="261" icon="" desc="-" ta="29.8" rn_hr1="0.0">해남</local>
        <local stn_id="263" icon="" desc="-" ta="32.5" rn_hr1="0.0">의령군</local>
        <local stn_id="264" icon="" desc="-" ta="32.9" rn_hr1="0.2">함양군</local>
        <local stn_id="271" icon="" desc="-" ta="25.3" rn_hr1="11.0">봉화</local>
        <local stn_id="272" icon="" desc="-" ta="27.9" rn_hr1="20.0">영주</local>
        <local stn_id="273" icon="" desc="-" ta="27.7" rn_hr1="17.5">문경</local>
        <local stn_id="276" icon="" desc="-" ta="27.9" rn_hr1="1.5">청송군</local>
        <local stn_id="277" icon="" desc="-" ta="28.9" rn_hr1="1.0">영덕</local>
        <local stn_id="278" icon="" desc="-" ta="27.9" rn_hr1="0.5">의성</local>
        <local stn_id="279" icon="" desc="-" ta="28.8" rn_hr1="5.2">구미</local>
        <local stn_id="281" icon="" desc="-" ta="31.0" rn_hr1="2.0">영천</local>
        <local stn_id="283" icon="" desc="-" ta="32.8" rn_hr1="0.3">경주시</local>
        <local stn_id="284" icon="" desc="-" ta="32.2" rn_hr1="0.0">거창</local>
        <local stn_id="288" icon="" desc="-" ta="33.5" rn_hr1="0.0">밀양</local>
        <local stn_id="162" icon="" desc="-" ta="29.1">통영</local>
        <local stn_id="184" icon="01" desc="맑음" ta="33.9">제주</local>
        <local stn_id="90" icon="" desc="-" ta="24.8">속초</local>
        <local stn_id="140" icon="" desc="-" ta="30.7">군산</local>
        <local stn_id="168" icon="02" desc="구름조금" ta="29.5">여수</local>
        <local stn_id="266" icon="" desc="-" ta="34.2">광양시</local>
        <local stn_id="260" icon="" desc="-" ta="34.1">장흥</local>
        <local stn_id="165" icon="02" desc="구름조금" ta="31.6">목포</local>
        <local stn_id="247" icon="" desc="-" ta="32.4">남원</local>
        <local stn_id="152" icon="02" desc="구름조금" ta="34.3">울산</local>
        <local stn_id="268" icon="" desc="-" ta="30.8">진도군</local>
        <local stn_id="170" icon="" desc="-" ta="29.3">완도</local>
        <local stn_id="189" icon="" desc="-" ta="29.2">서귀포</local>
        <local stn_id="244" icon="" desc="-" ta="32.0">임실</local>
        <local stn_id="188" icon="" desc="-" ta="30.8">성산</local>
        <local stn_id="115" icon="04" desc="흐림" ta="28.5">울릉도</local>
        <local stn_id="285" icon="" desc="-" ta="33.7">합천</local>
        <local stn_id="259" icon="" desc="-" ta="31.5">강진군</local>
        <local stn_id="174" icon="" desc="-" ta="33.3">순천</local>
        <local stn_id="156" icon="03" desc="구름많음" ta="32.5">광주</local>
        <local stn_id="192" icon="" desc="-" ta="31.7">진주</local>
        <local stn_id="262" icon="" desc="-" ta="31.3">고흥</local>
        <local stn_id="295" icon="" desc="-" ta="33.5">남해</local>
        <local stn_id="258" icon="" desc="-" ta="32.8">보성군</local>
        <local stn_id="294" icon="" desc="-" ta="28.7">거제</local>
        <local stn_id="169" icon="17" desc="박무" ta="27.0">흑산도</local>
        <local stn_id="252" icon="" desc="-" ta="32.3">영광군</local>
        <local stn_id="289" icon="" desc="-" ta="32.8">산청</local>
      </weather>
    </current>
     
     
    cs

    결과

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    2015년 07월 29일 17시
    철원(현재온도 : 26.1)
    동두천(현재온도 : 27.0)
    파주(현재온도 : 26.9)
    대관령(현재온도 : 23.2)
    춘천(현재온도 : 27.0, 흐림)
    백령도(현재온도 : 27.4, 박무)
    북강릉(현재온도 : 30.0, 구름많음)
    강릉(현재온도 : 31.0)
    동해(현재온도 : 27.2)
    서울(현재온도 : 28.5, 흐림)
    인천(현재온도 : 28.0, 박무)
    원주(현재온도 : 28.7)
    수원(현재온도 : 29.4, 박무)
    영월(현재온도 : 26.0)
    충주(현재온도 : 28.6)
    서산(현재온도 : 28.4, 구름조금)
    울진(현재온도 : 29.6)
    청주(현재온도 : 30.5, 박무)
    대전(현재온도 : 31.0, 구름많음)
    추풍령(현재온도 : 29.1)
    안동(현재온도 : 28.0, 흐림)
    상주(현재온도 : 31.1)
    포항(현재온도 : 32.9, 구름많음)
    대구(현재온도 : 31.9, 구름많음)
    전주(현재온도 : 31.1, 구름많음)
    창원(현재온도 : 30.1, 구름조금)
    부산(현재온도 : 28.6, 박무)
    고창(현재온도 : 31.9)
    진도(첨찰산)(현재온도 : 29.3)
    고산(현재온도 : 27.0)
    강화(현재온도 : 27.7)
    양평(현재온도 : 27.5)
    이천(현재온도 : 27.6)
    인제(현재온도 : 25.1)
    홍천(현재온도 : 27.1)
    태백(현재온도 : 26.3)
    정선군(현재온도 : 25.7)
    제천(현재온도 : 25.6)
    보은(현재온도 : 29.0)
    천안(현재온도 : 31.3)
    보령(현재온도 : 27.9)
    부여(현재온도 : 30.3)
    금산(현재온도 : 30.9)
    부안(현재온도 : 31.7)
    정읍(현재온도 : 33.3)
    장수(현재온도 : 30.0)
    고창군(현재온도 : 32.5)
    김해시(현재온도 : 31.9)
    순창군(현재온도 : 33.1)
    북창원(현재온도 : 30.3)
    양산시(현재온도 : 32.0)
    해남(현재온도 : 29.1)
    의령군(현재온도 : 31.9)
    함양군(현재온도 : 33.3)
    봉화(현재온도 : 25.5)
    영주(현재온도 : 28.3)
    문경(현재온도 : 27.6)
    청송군(현재온도 : 28.7)
    영덕(현재온도 : 29.4)
    의성(현재온도 : 28.7)
    구미(현재온도 : 29.6)
    영천(현재온도 : 30.2)
    경주시(현재온도 : 32.6)
    거창(현재온도 : 30.6)
    밀양(현재온도 : 31.9)
    통영(현재온도 : 28.2)
    제주(현재온도 : 33.2, 맑음)
    속초(현재온도 : 25.9)
    군산(현재온도 : 30.5)
    여수(현재온도 : 29.2, 구름조금)
    광양시(현재온도 : 33.6)
    장흥(현재온도 : 33.5)
    목포(현재온도 : 31.2, 맑음)
    남원(현재온도 : 32.4)
    울산(현재온도 : 33.8, 구름많음)
    진도군(현재온도 : 30.1)
    완도(현재온도 : 29.6)
    서귀포(현재온도 : 27.5)
    임실(현재온도 : 32.4)
    성산(현재온도 : 29.9)
    울릉도(현재온도 : 27.9, 흐림)
    합천(현재온도 : 33.5)
    강진군(현재온도 : 30.1)
    순천(현재온도 : 33.4)
    광주(현재온도 : 32.0, 구름많음)
    진주(현재온도 : 31.6)
    고흥(현재온도 : 30.8)
    남해(현재온도 : 32.7)
    보성군(현재온도 : 33.1)
    거제(현재온도 : 29.0)
    흑산도(현재온도 : 26.1, 박무)
    영광군(현재온도 : 31.5)
    산청(현재온도 : 32.3)
     
     
    cs

    Element의 모든 속성읽기

    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
    32
    33
    import java.io.IOException;
     
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Attribute;
    import org.jsoup.nodes.Attributes;
    import org.jsoup.nodes.Document;
    import org.jsoup.select.Elements;
     
    // 속성으로 읽기
    public class Jsoup10 {
        public static void main(String[] args) {
            Document document = null;
            try {
                String url = "http://www.kma.go.kr/XML/weather/sfc_web_map.xml";
                document = Jsoup.connect(url).get();
                
                // Element의 모든 속성읽기
                Elements date = document.select("weather");
                // attributes()로 모든 속성읽기
                Attributes attributes = date.get(0).attributes();
                for(Attribute a : attributes){
                    System.out.println(a.getKey() + " : " + a.getValue());
                }
     
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
     
    cs

    결과

    1
    2
    3
    4
    year : 2015
    month : 07
    day : 29
    hour : 17
    cs


    댓글

Designed by Tistory.