2012-04-22 5 views
0

간단한 간단한 질문인데 죄송하지만 C#을 처음 접했습니다. WP7 앱에서 XDocument.Load() 메소드를 사용하여 XDocument에 XML 파일 (특히 Blogger 피드)을로드하려고합니다. 나는 다음과 같은 시도 할 때, :XDocument에 URL의 xml 파일로드

열 수 없습니다 'http://destroyedordamaged.blogspot.com/feeds/posts/default'

XDocument data = XDocument.Load("http://destroyedordamaged.blogspot.com/feeds/posts/default"); 

가 나는 오류가 발생합니다. Uri 매개 변수는 Silverlight 응용 프로그램의 XAP 패키지 내의 내용을 가리키는 상대 경로 여야합니다. 당신이 임의의 열린 우리당 콘텐츠로드해야하는 경우, 사용로드 XML 내용에 대한 설명서를 참조하십시오 웹 클라이언트/HttpWebRequest를 그래서 나는 주위를보고 있었고, 나는이 대신 할 것을 제안 사람을 발견

:

WebClient wc = new WebClient(); 
wc.OpenReadCompleted += wc_OpenReadCompleted; 
wc.OpenReadAsync(new Uri("http://destroyedordamaged.blogspot.com/feeds/posts/default")); 

과 :

private void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
    { 
     if (e.Error != null) 
     { 
      Console.WriteLine("THERE IS AN ERROR: "+e.Error.Message); 
      return; 
     } 
     using (Stream s = e.Result) 
     { 
      data = XDocument.Load(s); 
     } 
    } 

하지만이 중 하나가 작동하지 않는 것; XDocument에 아무것도로드하지 않습니다. 내가 여기서 누락 된 것이 있습니까? 피드에서 XDocument로 XML을로드하는 가장 간단한 방법을 찾고 싶습니다.

나는 주위를 둘러 보았지만 이런 문제가있는 사람은 모두 내 확장과 같은 URL이 아닌 특정 .xml 파일에서 코드를 가리키는 것처럼 보입니다.

제공 할 수있는 의견을 보내 주시면 감사하겠습니다. 많은 감사드립니다.

var webClient = new WebClient(); 
webClient.DownloadStringCompleted += RequestCompleted; 
webClient.DownloadStringAsync(new Uri(SOURCE)); 

을 그리고 RequestCompleted 코드 :

답변

2

OpenReadAsync 대신 DownloadStringAsync를 사용해보십시오

private void RequestCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     if (e.Error == null) 
     { 
      var feedXml = XDocument.Parse(e.Result); 
      // (...) 
     } 
    } 

내가 몇 시간 전에 내 응용 프로그램에서 사용되는, 그래서 그것이 작동 확신 해요.

+0

대단히 감사합니다. – user1349655

0

날씨 예보 Windows 전화 코드 샘플을 확인하십시오. 이 샘플을 사용하여 작업 수행 방법에 익숙해졌습니다. 소스 코드를 다운로드하고 Forecast.cs를 확인하십시오.

Sample code link