private static void ParseIconXML(UPnPDevice d, String XML)
        {
            StringReader MyString = new StringReader(XML);
            XmlTextReader XMLDoc = new XmlTextReader(MyString);
            String iurl = null;

            XMLDoc.Read();
            XMLDoc.MoveToContent();

            if (XMLDoc.LocalName == "icon")
            {
                XMLDoc.Read();
                XMLDoc.MoveToContent();
                while (XMLDoc.LocalName != "icon")
                {
                    if (XMLDoc.LocalName == "url")
                    {
                        iurl = XMLDoc.ReadString();
                    }
                    else
                    {
                        XMLDoc.Skip();
                    }
                    XMLDoc.Read();
                    XMLDoc.MoveToContent();
                }
            }

            if (iurl != null)
            {
                if (iurl.ToUpper().StartsWith("HTTP://") == false)
                {
                    if (iurl.StartsWith("/") == true)
                    {
                        iurl = "http://" + d.BaseURL.Host + ":" + d.BaseURL.Port.ToString() + iurl;
                    }
                    else
                    {
                        iurl = HTTPMessage.UnEscapeString(d.BaseURL.AbsoluteUri + iurl);
                    }
                }
                d.FetchIcon(new Uri(iurl));
            }
        }
Example #2
0
        private static void ParseIconXML(UPnPDevice d, int startLine, String XML)
        {
            StringReader MyString = new StringReader(XML);
            XmlTextReader XMLDoc = new XmlTextReader(MyString);
            String iurl = null;

            try
            {
                XMLDoc.Read();
                XMLDoc.MoveToContent();

                if (XMLDoc.LocalName == "icon")
                {
                    XMLDoc.Read();
                    XMLDoc.MoveToContent();
                    while (XMLDoc.LocalName != "icon")
                    {
                        if (XMLDoc.LocalName == "url")
                        {
                            iurl = XMLDoc.ReadString();
                        }
                        else
                        {
                            XMLDoc.Skip();
                        }
                        XMLDoc.Read();
                        XMLDoc.MoveToContent();
                    }
                }

                if (iurl != null && d.BaseURL != null)
                {
                    if (iurl.ToUpper().StartsWith("HTTP://") == false)
                    {
                        if (iurl.StartsWith("/") == true)
                        {
                            iurl = "http://" + d.BaseURL.Host + ":" + d.BaseURL.Port.ToString() + iurl;
                        }
                        else
                        {
                            iurl = HTTPMessage.UnEscapeString(d.BaseURL.AbsoluteUri + iurl);
                        }
                    }
                    d.FetchIcon(new Uri(iurl));
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Invalid icon XML near line " + (startLine + XMLDoc.LineNumber).ToString() + ", Position " + XMLDoc.LinePosition.ToString(), ex);
            }
        }