2013년 4월 3일 수요일

[C#] xml 파징 예제


기상청에서 제공하는 날씨 api를 통해서

C# 에서 xml 문서를 파징하는 예제입니다.

단순하게 XmlDocument 객체를 생성하고, 로드할 xml 문서 주소를 넘겨주고

GetElementsByTagName 과 같은 함수를 이용해서 노드리스트를 얻으실 수 있습니다 :)

class Weather
{
    // http://www.kma.go.kr/wid/queryDFS.jsp?gridx=98&gridy=84  기상청 날씨 xml 이용
    public string weather = "";

    public Weather()
    {
        getWeather();
    }

    public void getWeather() {
        XmlDocument docX = new XmlDocument(); // XmlDocument 생성

        try
        {
            docX.Load("http://www.kma.go.kr/wid/queryDFS.jsp?gridx=98&gridy=84"); // url로 xml 파일 로드

        }
        catch
        {
            return;
        }

        XmlNodeList hourList = docX.GetElementsByTagName("hour"); // 태그 이름으로 노드 리스트 저장
        XmlNodeList tempList = docX.GetElementsByTagName("temp");
        XmlNodeList weatherList = docX.GetElementsByTagName("wfKor");

        // 활용 예제
        weather = "   = 울산 날씨 =\n";
        weather += hourList[0].InnerText + "시 : " + weatherList[0].InnerText + " (" + tempList[0].InnerText + "℃)\n";
        weather += hourList[1].InnerText + "시 : " + weatherList[1].InnerText + " (" + tempList[1].InnerText + "℃)\n";
        weather += hourList[2].InnerText + "시 : " + weatherList[2].InnerText + " (" + tempList[2].InnerText + "℃)\n";
        weather += hourList[3].InnerText + "시 : " + weatherList[3].InnerText + " (" + tempList[3].InnerText + "℃)\n";
        // weather += hourList[4].InnerText + "시 : " + weatherList[4].InnerText + "(" + tempList[4].InnerText + "℃)\n";
        // weather += hourList[5].InnerText + "시 : " + weatherList[5].InnerText + "(" + tempList[5].InnerText + "℃)\n";
    }
}

댓글 1개: