2014-10-27 62 views
-1

我想用WebClient替換我的XMLreader。用WebClient替換XMLReader

XmlReaderSettings settings = new XmlReaderSettings(); 
       settings.DtdProcessing = DtdProcessing.Ignore; 

       XmlReader reader = XmlReader.Create(http://feeds.bbci.co.uk/news/business/rss.xml, settings); 
       SyndicationFeed feed = SyndicationFeed.Load(reader); 
       reader.Close(); 

回答

0
public MainPage() 
{ 
    // our web downloader 
    WebClient downloader = new WebClient(); 

    // our web address to download, notice the UriKind.Absolute 
    Uri uri = new Uri("http://feeds.bbci.co.uk/news/business/rss.xml", UriKind.Absolute); 

    // we need to wait for the file to download completely, so lets hook the DownloadComplete Event 
    downloader.DownloadStringCompleted += new DownloadStringCompletedEventHandler(FileDownloadComplete); 

    // start the download 
    downloader.DownloadStringAsync(uri); 
} 

// this event will fire if the download was successful 
void FileDownloadComplete(object sender, DownloadStringCompletedEventArgs e) 
{ 
    // e.Result will contain the files byte for byte 

    // your settings 
    XmlReaderSettings settings = new XmlReaderSettings(); 
    settings.DtdProcessing = DtdProcessing.Ignore; 

    // create a memory stream for us to use from the bytes of the downloaded file 
    MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(e.Result ?? "")); 

    // create your reader from the stream of bytes 
    XmlReader reader = XmlReader.Create(ms, settings); 

    // do whatever you want with the reader 
    // ........ 

    // close 
    reader.Close() 
}