Beispiel #1
0
 public Publisher ParsePublisher(XmlDocument document)
 {
     Publisher publisher = new Publisher();
     XmlElement root = document.DocumentElement;
     if (root.Name.Equals(RssTag.Rss)) {
         XmlNodeList list = root.GetElementsByTagName(RssTag.Channel);
         if (root.FirstChild.Name == RssTag.Channel) {
             XmlElement channel = (XmlElement)root.FirstChild;
             publisher.Name = ParserUtility.GetValueOfElement(channel, RssTag.Title);
             publisher.Description = ParserUtility.GetValueOfElement(channel, RssTag.Description);
             publisher.Address = ParserUtility.GetValueOfElement(channel, RssTag.Link);
             publisher.AddDate = DateTime.Now.ToUniversalTime();
             publisher.Messages = new List<Message>();
             XmlNodeList items = channel.GetElementsByTagName(RssTag.Item);
             if (items.Count > 0) {
                 Message message;
                 for (int i = 0; i < items.Count; i++) {
                     message = new Message();
                     message.Publisher = publisher;
                     message.Name = ParserUtility.GetValueOfElement((XmlElement)items.Item(i), RssTag.Title);
                     message.Address = ParserUtility.GetValueOfElement((XmlElement)items.Item(i), RssTag.Link);
                     message.Value = HTMLConverter.HtmlToXamlConverter.ConvertHtmlToXaml(ParserUtility.GetValueOfElement((XmlElement)items.Item(i), RssTag.Description), false);
                     message.PublishDate = DateTime.Parse(ParserUtility.GetValueOfElement((XmlElement)items.Item(i), RssTag.PublishDate));
                     message.Author = ParserUtility.GetValueOfElement((XmlElement)items.Item(i), RssTag.Author);
                     message.Viewed = false;
                     publisher.Messages.Add(message);
                 }
             }
             return publisher;
         }
         throw new ParserException("Bad xml tag. Expected " + RssTag.Channel + " but was: " + root.FirstChild);
     }
     throw new ParserException("Bad root xml tag. Expected " + RssTag.Rss + " but was: " + root);
 }
Beispiel #2
0
        public Publisher ParsePublisher(XmlDocument document)
        {
            if (document == null)
                throw new ArgumentNullException("document");

            Publisher publisher = null;
            XmlElement root = document.DocumentElement;
            if (root.Name.Equals(AtomTag.Feed)) {

                publisher = new Publisher();
                publisher.Name = ParserUtility.GetValueOfElement(root, AtomTag.Title);
                publisher.Description = ParserUtility.GetValueOfElement(root, AtomTag.Subtitle);
                publisher.Address = ParserUtility.GetValueOfAtribute(root, AtomTag.Link, "href");

                XmlNodeList entries = root.GetElementsByTagName(AtomTag.Entry);
                if (entries.Count > 0) {
                    publisher.Messages = new List<Message>();
                    Message message;
                    for (int i = 0; i < entries.Count; i++) {
                        message = new Message();
                        message.Name = ParserUtility.GetValueOfElement((XmlElement)entries.Item(i), AtomTag.Title);
                        message.Address = ParserUtility.GetValueOfAtribute((XmlElement)entries.Item(i), AtomTag.Link, "href");
                        string desc = ParserUtility.GetValueOfElement((XmlElement)entries.Item(i), AtomTag.Summary);
                        message.Value = (desc != null) ? desc : ParserUtility.GetValueOfElement((XmlElement)entries.Item(i), AtomTag.Content);
                        message.PublishDate = DateTime.Parse(ParserUtility.GetValueOfElement((XmlElement)entries.Item(i), AtomTag.Published));
                        message.Author = ParserUtility.GetValueOfElement((XmlElement)entries.Item(i), AtomTag.Author);
                        message.Viewed = false;
                        publisher.Messages.Add(message);
                    }
                }
                return publisher;
            }
            throw new ParserException("Bad header xml");
        }