읽기1 Articles

  1. 2007/01/09 XML 정보 읽기
C# 2007/01/09 11:40

XML 정보 읽기

XML 관련 클래스를 가지고 본 블로그의 RSS의 데이터를 한번 읽어 보기 위해 시도 해보았다. XML의 두가지 형태 접근으로 순차 접근과 트리 접근이 있다. 그 방식중 일단 순차적으로 한번 읽어 보았다.

using System;
using System.Xml;
public class App
{
public static void Main()
{
XmlTextReader tr = new XmlTextReader("http://hahakbs.dothost.co.kr/rss");
while(tr.Read())
{
  if(tr.NodeType == XmlNodeType.Text)
   Console.WriteLine(tr.Value);
}
tr.Close();
}
}



위와 같은 소스로 병수 블로그의 RSS를 읽어 보았다 결과는 성공 결과물은 너무 길어서 생략 하겠슴..

그렇다면 트리형식의 접근 방법인 DOM 방식의 클래스 XMLDocument을 사용하여 한번 접근 해보았다.

using System;
using System.IO;
using System.Xml;
public class App
{
public static void Main()
{
XmlTextReader tr = new XmlTextReader("http://hahakbs.dothost.co.kr/rss");

XmlDocument xdoc = new XmlDocument();
xdoc.Load(tr);
DisplayTree(xdoc.DocumentElement);
tr.Close();
}
public static void DisplayTree(XmlNode node)
{
if(!node.HasChildNodes)
  Console.WriteLine(node.Value);
else
  Console.WriteLine("<" + node.Name + ">");
if(node.HasChildNodes)
{
  node = node.FirstChild;
  while(node != null)
  {
   DisplayTree(node);
   node = node.NextSibling;
  }
}
}
}



접근이 잘되었다. 위의 방법도 결과가 너무 길어 생략. 각 노드들을 보여 줄때는 재귀적인 방법으로 접근하여 모든 노드들을 접근하였다.  접근이 잘 되었다.

그렇다면 이번에는 검색해서 그 검색 결과를 한번 표현해 보겠다.

using System;
using System.Xml;
using System.Xml.XPath;
public class App
{
public static void Main()
{
XPathDocument doc = new XPathDocument("http://hahakbs.dothost.co.kr/rss");
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator iter = nav.Select("rss/channel/item/title");
while(iter.MoveNext())
  Console.WriteLine(iter.Current.Value);
}
}



결과

XML 이란..
Aspect Oriented Programming
Delegate를 함수의 매개변수로 넘기기
Visual Studio 사용하지 않고 Winform 만들기
애트리뷰트(Attribute)들.
catch 블럭과 finally 블럭 안에서의 예외처리는?
2006년 내머리속에는..
인덱서(Indexer)
오버라이딩의 두가지 방법
internal과 protected internal



위의 소스는 블로그의 타이틀만을 검색해서 검색결과를 출력해주는 간단한 프로그램을 작성 하였다. 검색은 이와 다른 매치 기능등이 있는데 그것들은 귀찮아서 생략 ^^;;


div>