private void ParseContainers(XDocument document, DIDLLiteObject didlobj) { XNamespace didlite = "urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"; XNamespace dc = "http://purl.org/dc/elements/1.1/"; XNamespace upnp = "urn:schemas-upnp-org:metadata-1-0/upnp/"; var xcontainers = document.Root.Elements(didlite + "container").ToList(); foreach (var xcontainer in xcontainers) { MediaContainer mcontainer = new MediaContainer(); //Parse components ParseUPnPComponent(xcontainer, mcontainer); //searchable and restricted mcontainer.Searchable = GetAttribute <bool>("searchable", xcontainer, true); mcontainer.Restricted = GetAttribute <bool>("restricted", xcontainer, true); //dc purl objects mcontainer.Title = GetChildValue <string>(dc + "title", xcontainer, "Unkown"); mcontainer.Creator = GetChildValue <string>(dc + "creator", xcontainer, "Unknown"); mcontainer.Description = GetChildValue <string>(dc + "description", xcontainer, "Unknown"); //upnp objects mcontainer.Genre = GetChildValue <string>(upnp + "genre", xcontainer, "Unkown"); mcontainer.AlbumArtURI = GetChildValue <string>(upnp + "albumArtURI", xcontainer, ""); //add to list didlobj.Items.Add(mcontainer); } }
private void ParseItems(XDocument document, DIDLLiteObject didlobj) { XNamespace didlite = "urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"; XNamespace dc = "http://purl.org/dc/elements/1.1/"; XNamespace upnp = "urn:schemas-upnp-org:metadata-1-0/upnp/"; var xitems = document.Root.Elements(didlite + "item").ToList(); foreach (var xitem in xitems) { MediaItem mitem = new MediaItem(); //Parse components ParseUPnPComponent(xitem, mitem); //searchable and restricted mitem.Restricted = GetAttribute <bool>("restricted", xitem, true); //dc purl objects mitem.Title = GetChildValue <string>(dc + "title", xitem, "Unkown"); //upnp objects //mcontainer.Genre = GetChildValue<string>(upnp + "genre", xcontainer, "Unkown"); mitem.AlbumArtURI = GetChildValue <string>(upnp + "albumArtURI", xitem, ""); mitem.Artist = GetChildValue <string>(upnp + "artist", xitem, "Unknown"); mitem.Album = GetChildValue <string>(upnp + "album", xitem, "Unknown"); //Parse resources ParseItemResources(xitem, mitem); //add to list didlobj.Items.Add(mitem); } }
public DIDLLiteObject ParseDIDL(string xml) { xml = xml.Replace("&", "&"); XDocument document = XDocument.Parse(xml); DIDLLiteObject didl = new DIDLLiteObject(); //Parse containers ParseContainers(document, didl); //Parse Item ParseItems(document, didl); return(didl); }