Windows Mobile 예제 [13] - 뉴스나 블로그 사이트 Rss Feed 얻어오기Windows Mobile 예제 [13] - 뉴스나 블로그 사이트 Rss Feed 얻어오기
Posted at 2009/12/15 16:18 | Posted in Windows Mobile/Windows Mobile 예제개발환경
Visual Studio 2008
C#
이번 시간에는 RSS Feed 를 읽어 와서 목록 형태로 보여주는 방법을 알아 보겠습니다.
Rss는 뉴스나 블로그에서 공급자들이 주로 사용하는 표현 방식 입니다.
사용자들은 이를 이용해 빠르게 최신 소식을 받거나 Rss로 받은 정보를 다시 가공해 새로운 컨텐츠를
만들어 내기도 합니다.
참고로 모바일팟의 RSS 는 http://mobilepot.net/rss 입니다.
Rss에 대해 처음 알게된 분들은 대충 어느 형태인지 파악하시면 됩니다.
전체적으로
DataSet, HttpWebRequest, StreamReader 에 대한 이해만 있다면 쉽게 구현 가능 합니다.
디자인은 아래와 같습니다.
이번 예제에서는 웹 브라우저 1개만 사용하겠습니다만
예제를 보시고 각자 취향에 맞게 적용하시면 될거 같습니다.
폼에 웹 브라우저 컨트롤을 가득채워 넣습니다.
소스 코드에서
이번 예제에서 사용될 StreamReader, List 을 위해
using 선언문을 추가 합니다.
| using System.Net; using System.IO; using System.Collections; |
우선
Rss 데이터의 제목, 본문, 링크, 작성 날짜를 이용하기 위해
클래스를 따로 하나 생성 합니다.
| public class RssData { public string Title { get; set; } public string Description { get; set; } public string Link { get; set; } public DateTime PublishDate { get; set; } } |
Rss 데이터를 읽어 오는 부분 입니다.
HttpWebRequest 을 이용 xml 형식으로 데이터를 처리 합니다.
|
public static DataSet ReadRssData(string UriString) string rssXml = streamReader.ReadToEnd(); StringReader stringReader = new StringReader(rssXml); DataSet dataSet = new DataSet(); return dataSet; |
읽어온 데이터를
List 에 저장합니다.
|
public static List<RssData> GetRssData(DataSet dataSet) foreach (DataRow dataRow in dataSet.Tables["item"].Rows) rssdata.Title = (string)dataRow["title"]; rsslist.Add(rssdata); return rsslist; |
웹 브라우저 컨트롤에 데이터를 표시하는 방법을 설정합니다.
HTML 코드는 각자 취향에 맞게 이용하면 됩니다.
|
public static string RssVeiw(List<RssData> events) stringBuilder.Append(@"<span style=""color: #ffff66;font-weight:bold;"">"); foreach (RssData rssdata in events) return stringBuilder.ToString(); |
마지막으로 폼이 로드 될때
작성해둔 함수들을 이용 데이터를 받아 웹 브라우저에 뿌리면 됩니다.
|
private string RssUri = "http://mobilepot.net/rss"; List<RssData> rssdata = GetRssData(dataSet); string htmlText = RssVeiw(rssdata); } |
테스트 화면 입니다.
실제 옴니아기기로 테스트 하였습니다.
'Windows Mobile > Windows Mobile 예제' 카테고리의 다른 글
| Windows Mobile 예제 [13] - 뉴스나 블로그 사이트 Rss Feed 얻어오기 (13) | 2009/12/15 |
|---|---|
| Windows Mobile 예제 [12] - 간단한 카메라 제어하기 (옴니아 기준) (13) | 2009/06/02 |
| Windows Mobile 예제 [11] - 배경화면 만들기 & 글씨 그리기 (6) | 2009/05/26 |
| Windows Mobile 예제 [10] - 간단한 로딩 화면 구현해 보기 (3) | 2009/05/25 |
| Windows Mobile 예제 [9] - DataGrid에 MS SQL 2005 데이터베이스 자료 쓰기 (7) | 2009/05/18 |
| Windows Mobile 예제 [8] - WebRequest 를 이용한 파일 다운로드 (2) | 2009/05/12 |







에뮬레이터라 그런가;;
그리고 에뮬레이터에 가로스크롤도 계속 생기네요
옆에 아무 내용도 없는데.ㅠㅠ
확인을 못해 드리겠네요 죄송합니다.
다른 주소로도 실행했는데 안대는건가요
에뮬이라 제한사항이 있나보군요
테스트 폰에서 한번 실행해볼게요.
테스트 폰 가진사람이 언능 와야하는데요
어제 야근해서 아직 안오시네요~
다음 지도를 WebBrowser를 이용해서 보여줄려고 하는데요
소스는 아래와 같구요.
저걸 string으로 만들어서 webBrowser1.DocumentText 에 넣었더니 나오지 않더군요
아래 소스를 html로 실행하면 pc 브라우저에서는 제대로 나옵니다.
저걸 webBrowser1.DocumentText 를 이용해서 나오게 하는 방법이 없을까요?
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>Daum 지도 API</title>
<script type='text/javascript' src='http://apis.daum.net/maps/maps2.js?apikey=247c8cba06cfefba616ada66fac19f58e5720410' charset='utf-8'></script>
</head>
<body>
<div id='map' style='width:600px;height:400px;'></div>
<script type='text/javascript'>
var map = new DMap('map', {point:new DLatLng(37.48879895934866, 127.03130020103005), level:2}
);
</script>
</body>
</html>
윈모용 브라우저에서 자바스크립트가 지원되지 않기 때문이죠
오페라에서 확인은 되지만 그걸로는 작업이 되질 않죠
MS에서 지원해주길 기다리거나
상업용으로 배포된 API를 참조 하시는게 아직은 최선의
방법인거 같습니다.
매번 감사합니다.
이제 휴일인데 설 잘보네세요~
지도관련해서 다시 한번 질문 드립니다.
WebBrowser 컨트롤을 통하지 않고 다음이나 네이버, 구글의 지도를 보여주는 방법은 없을가요?
TRUEMap 이런것도 그렇고 모바일메쉬업에서도 구현한것이 있는걸 보면
어떤 방법이 있긴 할꺼 같은데
전혀 모르겠네요.
토요일도 근무 하고 ㅜ.ㅜ 명절을 아주 푹쉬었네요
아래 링크로 한번 가보세요
외국분인데 소스도 제공하니 도움이 될것 같네요
http://www.koushikdutta.com/search/label/Tiled%20Map%20Client
저도 집에서 자료좀 찾느라.
하나 찾긴했는데 static map을 사용하길래 급 실망;
저것도 한번 봐야겠네요.
그리고 WebBrowser 컨트롤에서 daum map은 web page를 하나만들어서 url로 표시 해주니까 나오긴 하더라구요.
좋은 정보 정말 감사드립니다.
윈모 프로그래밍은 초짜라서 어디서 꼬인지도 잘 모르겠습니다.
가능하시다면 예제파일을 받을 수 있을까요?
메일주소는 euidoo@naver.com 입니다.
소스를 찾아 보니 남아있질 않아서요 -.-;;;
보내드리진 못하네요 죄송합니다.
아직 에뮬레이터에서 네트워크설정하는 방법은 잘안되서
디바이스로 확인하고 있습니다. ㅎ;;
다만 RSS Feed를 얻어와서 페이지가 표시되기는 하는데
링크를 클릭하면 넘어가질 않네요;;;
무슨 별도의 설정이 필요한가요?