업무를 하다보면 XML을 이용해 값을 주고 받아야 하는 경우가 많습니다.
그때 Linq To Xml은 코드량을 줄여 줍니다. 간단한 실전 예제로 설명 하겠습니다.

using System.Xml; 

//피드 받기 - XmlDocument  형식으로 XML 데이타를 가져옵니다.
XmlDocument doc = GetFeedXmlDocument();
if (doc == null)
return;

//피드에서 아이템 노드들 추출 - 하단 XML 구존 참조
XmlNodeList itemNodeList = doc.GetElementsByTagName("item");

var qItems = itemNodeList.Cast<XmlNode>().AsQueryable()
                             .Select(node =>
                                 new ItemDTO()
                                 {
                                     Menu = menu,
                                     Title = node["title"].InnerText,
                                     Link = node["link"].InnerText,
                                     Description = node["description"].InnerText,
                                     PubDate = node["pubDate"].InnerText,
                                     KeyNo = node["KeyNo"].InnerText,
                                     Category = node["Category"].InnerText,
                                     Writer = node["Writer"].InnerText,
                                     PDFFile = node["PDFFile"].InnerText,
                                     ETC = node["ETC"].InnerText
                                 });
                    foreach (var item in qItems)
                    {
// var 타입의 값 item을 보내서 ItemDTO 타입의 값으로 저장
// ProcessItem 내에서도 Linq를 사용하기에 InsertOnSubmit를 사용하여 저장하면 끝~
                        ProcessItem(item);
                    }

 /// <summary>
/// 피드를 다운로드 해서, XML문서로 로드한다.
/// </summary>
/// <returns>XML문서</returns>
private static XmlDocument GetFeedXmlDocument()
{
            try
            {
                Console.WriteLine("---------------------------");
                Console.WriteLine("다운로드 시작 : " +  FeedURL);
/// WebClient를 이용하여 XML을 뿌려주는 주소로 가서 XML를 가져와요~
                WebClient wc = new WebClient();
                string feedResult = wc.DownloadString(FeedURL); 
                Console.WriteLine("다운로드 완료");
                Console.WriteLine("---------------------------");

                Console.WriteLine("XML문서생성 시작");
/// XML형식으로 로드 합니다.
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(feedResult);
                Console.WriteLine("XML문서생성 완료");
                Console.WriteLine("---------------------------");
                return doc;
            }
            catch (Exception ex)
            {
                Console.WriteLine("다운로드 및 피드XML문서 로드과정에서 에러발생");
                Console.WriteLine(ex.ToString());
                return null;
            }
}



-- Class 형식
internal class ItemDTO
    {
        public SeriFeedMenuType Menu { get; set; }
        public string Title { get; set; }
        public string Link { get; set; }
        public string Description { get; set; }
        public string PubDate { get; set; }
        public string KeyNo { get; set; }
        public string Category { get; set; }
        public string Writer { get; set; }
        public string RecommandCount { get; set; }
        public string ViewCount { get; set; }
        public string PDFFile { get; set; }
        public string ETC { get; set; }
    }
-- XML 형식
<item>
                  <title>제목</title>
                  <link>
본문링크</link>
                  <description>
본문내용</description>
                  <pubDate>
게시일</pubDate>
                  <guid>
게시물 키 URL</guid>
                   <KeyNo>글번호</KeyNo>
                  <Writer>
작성자</Writer>
                  <Summary>
요약</Summary>
                  <PDFFile>PDF
파일경로</PDFFile>
                  <ETC>
기타게시물정보(첨부파일목록등..)</ETC>
                </item>
반응형

3박4일 제주도를 다녀 왔습니다..

근데 2틀정도 비와 눈이 와서 일정에 차질이 많았습니다 ㅠㅠ;;

그래서 생각 보다 많이 다니질 못했네요...

음식점에 대한 평가는 저의 극히 주관적인 느낌입니다..

별 5개를 만점으로 3개 정도면 보통으로 생각합니다..

 

1. 선우영 -

  서비스 ★★★, 맛 - ★★★☆

  갈치조림을 먹었습니다. 서비스는 그냥  무난한 정도 였습니다.

  전체적인 맛는 괜찮은 정도 였고.. 갈치 괜찮았고요.. 전 김치가 얌념에 쏙 배여 있는게 맛 있었습니다..


2. 옛날옛적 -

  서비스 ★★★★★, 맛 - ★★★★☆

  돔베고기를 먹었습니다. 서비스 상당히 친절 하셨고요. 돔베고기는 처음이라고 하니

  설명도 해주시고 어떻게 먹어야 하는지도 설명해 주시고.

  맛도 역시 좋았습니다. 음식들이 대체적으로 깔끔 했고요..... 신선해 보였습니다...

  다음에도 다시 가고픈 곳이었습니다.


3. 거부한적식 -

  서비스 ★★☆, 맛 - ★★

  천지연 폭포 주차장 앞에 있는 곳이였습니다. 후기를 보면 무한 리필에 맛있다고 했는데.....

  글쎄요 제가 먹기에는 우선 맛이 별로였습니다. 고등어 조림은 좀 비린내가 났고.. 다른 반찬들도 그리 신선해

  보이지가... 또  흑돼지는 너무 얇았고.. 흑돼지를 리필 부탁해서 새로 받았는데...

  살이 전혀 없더군요... 기분만 나뻐 지더군요... 그리고 딱히 서비스는 나쁘지 않았는데.. 표정이 좀 어두운게 느껴 졌구요..

  그냥 그리 추천하고 싶지 않은 곳이였습니다...


4. 삼대국수-

  서비스 ★★★☆, 맛 - ★★★☆

친절하게 주문받으셨고 또 친절하게 국수 가져다 주셨고요... 멸치국수를 먹었는데... 개인적으로  무지 맛있다는

아니였고요.. 그냥 괜찮은편 정도.. 였습니다. 좋은점은 가격이 3,500원으로 저렴 했고 양이 참 많아서..

먹는데 힘이 들었다는 점 정도 입니다..

반응형

'맛집을 찾아서' 카테고리의 다른 글

성수동 닭한마리 칼국수  (0) 2009.03.27
테이블에 아래와 같이 Style을 넣어 주면 위에서 아래로 그라데이션이 됩니다.

GradientType을 1로 주면 좌측에서 우측으로 그라데이션이 됩니다.

style="filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#f5b951, EndColorStr=#ffffff);"
반응형

+ Recent posts