2010-09-22 57 views
0

我使用下面的方法來下載一個XML文件建設有一個Web客戶端下載的字符串

private void LoadXMLFile() 
{ 
    WebClient xmlClient = new WebClient(); 
    xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(XMLFileLoaded); 
    xmlClient.DownloadStringAsync(new Uri("chart.xml", UriKind.RelativeOrAbsolute)); 
} 

void XMLFileLoaded(object sender, DownloadStringCompletedEventArgs e) 
{ 
    if (e.Error == null) 
    { 
    string xmlData = e.Result; 
    HtmlPage.Window.Alert(xmlData); 
    x2 = new XDocument(xmlData); 
    } 
} 

我想用內部XMLDATA的信息來建立一個XDocument,像我試圖做一個XDocument我最後一行。它不會給出任何錯誤,但是我的程序不起作用,所以我不能正確地製作xDocument。像這樣直接將xml文檔分配給x2

x2 = Xdocument.Load("chart.xml") 

的作品。

但我需要通過webclient來完成。我在做什麼錯在這裏

回答

1

一旦你得到了xmlData字符串,它很容易 - 使用XDocument.Parse

XDocument doc = XDocument.Parse(xmlData); 

你能解釋一下爲什麼你需要使用WebClient而非XDocument.Load有關係嗎?它是否使調用異步?

+0

解析不起作用。這xml應該建立一個silverlight應用程序,但使用webclient和解析應用程序只是在100%加載卡住,相同的文件作爲鏈接從我的web項目的客戶端bin添加並使用xDocument.Load加載工作...但我需要通過Web客戶端來完成,因爲鏈接和加載方法不會更新xap – xdocsl 2010-09-22 18:57:24

+0

@xdocsl:如果'Parse'不起作用,那麼XML可能無效,或者可能錯誤地使用了錯誤的內容編碼這肯定會搞砸了)。如果您嘗試使用調試器遍歷代碼,那麼當您使用'Parse'時會發生什麼? – 2010-09-22 19:02:24

+0

好的我遇到了同步問題。 Web客戶端正在下載文件,但在文件完全下載之前,其他方法應該使用該文件 – xdocsl 2010-09-24 14:09:45

相關問題