반응형
//Youtube Rss Atom형식의 XML을 파싱하는 소스
using(XmlTextReader rssReader = new XmlTextReader("Youtube URl")) 
{ 
	XmlDocument xmlDoc = new XmlDocument(); //XML 객체 생성      
	xmlDoc.Load(rssReader); //URL Load

	//Select all nodes starting with "entry"
	XmlNodeList xmlNodeList = xmlDoc.GetElementsByTagName("entry"); //XML에 entry태그의 데이터를 전부 가지고 와서 List로 만들어준다.

	//각각의 노드로 만들어서 반복문을 돌린다.
	foreach(XmlNode node in xmlNodeList) 
	{ 	
		XmlDocument innerXmlDocument = new XmlDocument(); //내부 객체를 파싱하기 위한 XmlDocument를 생성한다.
		innerXmlDocument.LoadXml(node.OuterXml); //entry 노드의 데이터를 파싱한다.

		//innerXmlDocument.GetElementsByTagName("media:title")[0].InnerText => XML 태그의 텍스트를 전부 가지고 온다.
		//innerXmlDocument.GetElementsByTagName("media:thumbnail")[0].Attributes["url"].Value 태그 안에 있는 속성의 값만 가지고 온다.

		string vYoutube_URL = innerXmlDocument.GetElementsByTagName("link")[0].Attributes["href"].Value;
		string vThumbnail_URL innerXmlDocument.GetElementsByTagName("media:thumbnail")[0].Attributes["url"].Value;
		string vTitle = innerXmlDocument.GetElementsByTagName("media:title")[0].InnerText;
		string vDescription = innerXmlDocument.GetElementsByTagName("media:description")[0].InnerText;
	}
}

+ Recent posts