Example #1
0
        private static async Task ProcessXml(XmlReader r, Comic c)
        {
            // TODO: MSDN shows ReadToFollowingAsync but it's not found..?
            r.ReadToFollowing("item");

            while (await r.ReadAsync())
            {
                switch (r.LocalName)
                {
                case "title":
                    c.Title = r.ReadInnerXml();
                    break;

                case "pubDate":
                    DateTime dt;
                    if (DateTime.TryParse(r.ReadInnerXml(), out dt))
                    {
                        c.Published = dt;
                    }
                    break;

                case "origLink":
                    c.Link = new Uri(r.ReadInnerXml());
                    break;

                case "guid":
                    int guid;
                    var rgx   = new Regex(@"(?<=p=)[0-9]+");
                    var match = rgx.Match(r.ReadInnerXml());
                    if (int.TryParse(match.Value, out guid))
                    {
                        c.Id = guid;
                    }
                    break;

                // Only need the first (most recent) item
                case "item":
                    return;
                }
            }
        }