示例#1
0
文件: Entity.cs 项目: jorik041/odata
        public static List<Entity> LoadFromAtom(string atom)
        {
            var xml = Xml.Parse (atom);
            var entries = xml.ElementsWithName ("entry");

            var r = new List<Entity> ();

            foreach (var a in entries) {

            //				Console.WriteLine (a.OuterXml);

                try {
                    var e = new Entity ();

                    e.Id = a.ElementText ("id");
                    e.Title = a.ElementText ("title");
                    e.EntityTypeFullName = a.ElementsWithName ("category")[0].GetAttribute ("term");
                    e.UpdatedTime = DateTime.Parse (a.ElementText ("updated"));

                    foreach (var al in a.ElementsWithName ("link")) {
                        var l = new Entity.Link ();
                        l.Rel = al.GetAttribute ("rel");
                        l.Name = al.GetAttribute ("title");
                        l.Href = al.GetAttribute ("href");
                        l.Type = al.GetAttribute ("type");
                        e.Links.Add (l);
                    }

                    e.Links.Sort ((x, y) => x.Name.CompareTo (y.Name));

                    foreach (var pn in a.ElementsWithName ("properties")[0].ChildNodes) {
                        var pe = pn as System.Xml.XmlElement;
                        if (pe == null)
                            continue;

                        var p = new EntityProperty ();
                        p.Name = pe.LocalName;
                        p.ValueText = pe.InnerText.Trim ();
                        foreach (System.Xml.XmlAttribute attr in pe.Attributes) {
                            if (attr.LocalName == "type") {
                                p.ValueType = attr.InnerText;
                            }
                        }

                        e.Properties.Add (p);
                    }

                    r.Add (e);

                } catch (Exception ex) {
                    Console.WriteLine (ex);
                }
            }

            return r;
        }
示例#2
0
        public static List <Entity> LoadFromAtom(string atom)
        {
            var xml     = Xml.Parse(atom);
            var entries = xml.ElementsWithName("entry");

            var r = new List <Entity> ();

            foreach (var a in entries)
            {
//				Console.WriteLine (a.OuterXml);

                try {
                    var e = new Entity();

                    e.Id    = a.ElementText("id");
                    e.Title = a.ElementText("title");
                    e.EntityTypeFullName = a.ElementsWithName("category")[0].GetAttribute("term");
                    e.UpdatedTime        = DateTime.Parse(a.ElementText("updated"));

                    foreach (var al in a.ElementsWithName("link"))
                    {
                        var l = new Entity.Link();
                        l.Rel  = al.GetAttribute("rel");
                        l.Name = al.GetAttribute("title");
                        l.Href = al.GetAttribute("href");
                        l.Type = al.GetAttribute("type");
                        e.Links.Add(l);
                    }

                    e.Links.Sort((x, y) => x.Name.CompareTo(y.Name));

                    foreach (var pn in a.ElementsWithName("properties")[0].ChildNodes)
                    {
                        var pe = pn as System.Xml.XmlElement;
                        if (pe == null)
                        {
                            continue;
                        }

                        var p = new EntityProperty();
                        p.Name      = pe.LocalName;
                        p.ValueText = pe.InnerText.Trim();
                        foreach (System.Xml.XmlAttribute attr in pe.Attributes)
                        {
                            if (attr.LocalName == "type")
                            {
                                p.ValueType = attr.InnerText;
                            }
                        }

                        e.Properties.Add(p);
                    }

                    r.Add(e);
                } catch (Exception ex) {
                    Console.WriteLine(ex);
                }
            }

            return(r);
        }