Exemplo n.º 1
0
        public override int Read()
        {
            // Read each character, skipping over characters that XML has prohibited

            int nextCharacter;

            do
            {
                // Read a character

                if ((nextCharacter = base.Read()) == EOF)
                {
                    // If the character denotes the end of the file, stop reading

                    break;
                }
            }
            // Skip the character if it's prohibited, and try the next
            while (!XmlSanitizingStream.IsLegalXmlChar(nextCharacter));

            return(nextCharacter);
        }
Exemplo n.º 2
0
        public override int Peek()
        {
            // Return the next legl XML character without reading it

            int nextCharacter;

            do
            {
                // See what the next character is

                nextCharacter = base.Peek();
            }while
            (
                // If it's prohibited XML, skip over the character in the stream
                // and try the next.

                !XmlSanitizingStream.IsLegalXmlChar(nextCharacter) &&
                (nextCharacter = base.Read()) != EOF
            );

            return(nextCharacter);
        } // method
Exemplo n.º 3
0
        SyndicationFeed LoadRSS10(string url)
        {
            HttpWebRequest webReq = WebRequest.Create(url) as HttpWebRequest;

            webReq.Timeout          = ( int )TimeSpan.FromSeconds(5).TotalMilliseconds;
            webReq.ReadWriteTimeout = (int)TimeSpan.FromSeconds(5).TotalMilliseconds;

            using (var resp = webReq.GetResponse())
                using (var reader = new XmlSanitizingStream(resp.GetResponseStream()))
                    using (var xmlReader = XmlReader.Create(reader))
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.Load(xmlReader);

                        List <SyndicationItem> feedItems = new List <SyndicationItem>();
                        SyndicationFeed        feed      = new SyndicationFeed();
                        feed.Items = feedItems;

                        XmlNamespaceManager nsManager = new XmlNamespaceManager(doc.NameTable);
                        nsManager.AddNamespace("rss", "http://purl.org/rss/1.0/");

                        feed.Title = new TextSyndicationContent(doc.SelectSingleNode("//rss:channel/rss:title/text()", nsManager).Value);

                        foreach (XmlNode node in doc.SelectNodes("//rss:item", nsManager))
                        {
                            var item = new SyndicationItem();

                            item.Title       = new TextSyndicationContent(node.SelectSingleNode("./rss:title/text()", nsManager).Value);
                            item.PublishDate = DateTimeOffset.Parse(node.SelectSingleNode("./rss:pubDate/text()", nsManager).Value);

                            item.Links.Add(new SyndicationLink(new Uri(node.SelectSingleNode("./rss:link/text()", nsManager).Value)));

                            feedItems.Add(item);
                        }

                        return(feed);
                    }
        }
Exemplo n.º 4
0
        SyndicationFeed LoadRSS10( string url )
        {
            HttpWebRequest webReq = WebRequest.Create( url ) as HttpWebRequest;
            webReq.Timeout = ( int )TimeSpan.FromSeconds( 5 ).TotalMilliseconds;
            webReq.ReadWriteTimeout = (int)TimeSpan.FromSeconds( 5 ).TotalMilliseconds;

            using ( var resp = webReq.GetResponse() )
            using ( var reader = new XmlSanitizingStream( resp.GetResponseStream() ) )
            using ( var xmlReader = XmlReader.Create( reader ) )
            {
                XmlDocument doc = new XmlDocument();
                doc.Load( xmlReader );

                List<SyndicationItem> feedItems = new List<SyndicationItem>();
                SyndicationFeed feed = new SyndicationFeed();
                feed.Items = feedItems;

                XmlNamespaceManager nsManager = new XmlNamespaceManager( doc.NameTable );
                nsManager.AddNamespace( "rss", "http://purl.org/rss/1.0/" );

                feed.Title = new TextSyndicationContent( doc.SelectSingleNode( "//rss:channel/rss:title/text()", nsManager ).Value );

                foreach ( XmlNode node in doc.SelectNodes( "//rss:item", nsManager ) )
                {
                    var item = new SyndicationItem();

                    item.Title = new TextSyndicationContent( node.SelectSingleNode( "./rss:title/text()", nsManager ).Value );
                    item.PublishDate = DateTimeOffset.Parse( node.SelectSingleNode( "./rss:pubDate/text()", nsManager ).Value );

                    item.Links.Add( new SyndicationLink( new Uri( node.SelectSingleNode( "./rss:link/text()", nsManager ).Value ) ) );

                    feedItems.Add( item );
                }

                return feed;
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Get whether an integer represents a legal XML 1.0 character. See the
 /// specification at w3.org for these characters.
 /// </summary>
 public static bool IsLegalXmlChar(int character)
 {
     return(XmlSanitizingStream.IsLegalXmlChar("1.0", character));
 }