LINUX.ORG.RU

История изменений

Исправление d_Artagnan, (текущая версия) :

есть что-то объединяющее типы лент

Конечно. RSS и Atom зовется. И после этого фид парсить и разбирать становится не просто, а очень просто.Например:

	public class XMLCollector
	{
		private XmlTextReader _reader;
		private FeedOptions _options;

		public XMLCollector ( FeedOptions options )
		{
			_options = options;
			_reader = new XmlTextReader(_options.FeedURL);
		}

		public List<Tuple<string, string, string>> Collect ()
		{
			var doc = new XmlDocument ();
			var result = new List<Tuple<string, string, string>> ();
			doc.Load (_reader);

			var nodes = doc.SelectNodes (_options.FeedItemPath);
			foreach (XmlNode node in nodes)
				result.Add(Tuple.Create(
					node.SelectSingleNode(_options.ItemA).InnerXml,
					node.SelectSingleNode(_options.ItemB).InnerXml,
					Regex.Match(node.SelectSingleNode(_options.ItemC).InnerText, _options.ExtractExpr ).Groups[2].Value
					));

			return result;
		}
	}

Всё.

PS Ввиду банальности и простоты вопроса неясна сентанция про «Этот шаг пока ещё не реализован.» от (***) пользователя. Это разве так сложно?

Upd: посмотрел твой профиль. Теперь понятно, почему пресловутый «шаг» еще не реализован. Ничего не поделаешь - это Лисп... Счастливой отладки.

Исходная версия d_Artagnan, :

Как раз вчера ночерком делал

есть что-то объединяющее типы лент

Конечно. RSS и Atom зовется. И после этого фид парсить и разбирать становится не просто, а очень просто.Например:

	public class XMLCollector
	{
		private XmlTextReader _reader;
		private FeedOptions _options;

		public XMLCollector ( FeedOptions options )
		{
			_options = options;
			_reader = new XmlTextReader(_options.FeedURL);
		}

		public List<Tuple<string, string, string>> Collect ()
		{
			var doc = new XmlDocument ();
			var result = new List<Tuple<string, string, string>> ();
			doc.Load (_reader);

			var nodes = doc.SelectNodes (_options.FeedItemPath);
			foreach (XmlNode node in nodes)
				result.Add(Tuple.Create(
					node.SelectSingleNode(_options.ItemA).InnerXml,
					node.SelectSingleNode(_options.ItemB).InnerXml,
					Regex.Match(node.SelectSingleNode(_options.ItemC).InnerText, _options.ExtractExpr ).Groups[2].Value
					));

			return result;
		}
	}

Всё.

PS Ввиду банальности и простоты вопроса неясна сентанция про «Этот шаг пока ещё не реализован.» от (***) пользователя. Это разве так сложно?