diff options
Diffstat (limited to 'Aggregator/Parser/Parser.cs')
-rw-r--r-- | Aggregator/Parser/Parser.cs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/Aggregator/Parser/Parser.cs b/Aggregator/Parser/Parser.cs index 4952a3d..c9ad038 100644 --- a/Aggregator/Parser/Parser.cs +++ b/Aggregator/Parser/Parser.cs @@ -1,10 +1,26 @@ using System; +using System.Linq; +using System.Xml.Linq; using System.Collections.Generic; using Aggregator.Classes; namespace Aggregator.Parser { public static class Parser { - public static IEnumerable<Article> Parse(string xml); - public static IEnumerable<IEnumerable<Article>> ParseMultiple(string xmls); + public static IEnumerable<Article> Parse(string xml, Config config) { + return XDocument.Parse(xml).Descendants("item") + .Select(articles => articles.Descendants().ToArray()) + .Select(article => new Article() + { + Source = config.Source, + Title = article[config.Title].Value, + Description = article[config.Description].Value, + ArticleLink = article[config.ArticleLink].Value, + ImageLink = article[config.ImageLink].Attribute("url").Value, + PublishDate = DateTime.Parse(article[config.PublishDate].Value) + }).Distinct().ToArray(); + } + public static IEnumerable<IEnumerable<Article>> ParseMultiple(string xmls) { + + } } }
\ No newline at end of file |