W8 Phone System.Xml.XmlException&

时间:2014-10-25 13:01:14

标签: c# xml windows windows-phone-8 syndication

使用此代码显示没有错误,但是当它运行时它会一直崩溃,下面是代码,然后是调试输出;

using System.Xml;
using System.Net;
using System.ServiceModel.Syndication;

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

        XmlReader reader = XmlReader.Create("https://news.google.com/news/feeds?pz=1&cf=all&ned=uk&hl=en&q=" + "google" + "&output=rss", settings);
        SyndicationFeed feed = SyndicationFeed.Load(reader);
        reader.Close();

这是调试输出:

A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll
A first chance exception of type 'System.ArgumentException' occurred in System.Windows.ni.dll
'TaskHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\en-US\System.Xml.debug.resources.DLL'. Module was built without symbols.
A first chance exception of type 'System.Xml.XmlException' occurred in System.Xml.ni.dll
'TaskHost.exe' (CoreCLR: Silverlight AppDomain): Loaded 'C:\windows\system32\en-US\mscorlib.debug.resources.dll'. Module was built without symbols.
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.ni.dll
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in Microsoft.Phone.ni.dll

调用堆栈信息:

  

project.DLL!project.App.RootFrame_NavigationFailed(object sender,System.Windows.Navigation.NavigationFailedEventArgs e)第90行C#       Microsoft.Phone.ni.dll!System.Windows.Navigation.NavigationService.RaiseNavigationFailed(System.Uri uri,System.Exception exception)未知       Microsoft.Phone.ni.dll!System.Windows.Navigation.NavigationService.ContentLoader_BeginLoad_Callback(System.IAsyncResult result)Unknown       Microsoft.Phone.ni.dll!System.Windows.Navigation.PageResourceContentLoader.BeginLoad_OnUIThread(System.AsyncCallback userCallback,System.Windows.Navigation.PageResourceContentLoader.PageResourceContentLoaderAsyncResult result)Unknown       Microsoft.Phone.ni.dll!System.Windows.Navigation.PageResourceContentLoader.BeginLoad.AnonymousMethod__0(object args)未知       [原产于管理过渡]
      mscorlib.ni.dll!System.Delegate.DynamicInvokeImpl(object [] args)未知       System.Windows.ni.dll!System.Windows.Threading.DispatcherOperation.Invoke()未知       System.Windows.ni.dll!System.Windows.Threading.Dispatcher.Dispatch(System.Windows.Threading.DispatcherPriority priority)未知       System.Windows.ni.dll!System.Windows.Threading.Dispatcher.OnInvoke(object context)Unknown       System.Windows.ni.dll!System.Windows.Hosting.CallbackCookie.Invoke(object [] args)未知       System.Windows.RuntimeHost.ni.dll!System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(System.IntPtr pHandle,int nParamCount,System.Windows.Hosting.NativeMethods.ScriptParam * pParams,System.Windows.Hosting.NativeMethods.ScriptParam * pResult)未知

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

public void FileDownloadComplete(object sender,DownloadStringCompletedEventArgs e) {     // e.Result将包含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()