2011-11-17 84 views
2

我需要讀取一個xml文件,但是嘗試讀取它時出現此錯誤。根元素缺失Windows Phone

public void load() 
{ 
    IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication(); 
    IsolatedStorageFileStream fileStream; 
    try 
    { 
    fileStream = myIsolatedStorage.OpenFile("sites.xml", FileMode.Open, 
     FileAccess.Read); 
    } 
    catch (Exception) 
    { 
    fileStream = myIsolatedStorage.CreateFile("sites.xml"); 
    XDocument sites= new XDocument(new XElement("root")); 
    fileStream = myIsolatedStorage.OpenFile("sites.xml", FileMode.Open, 
     FileAccess.Read); 
    }   

    List<Site> listSites= new List<Site>(); 

    using (StreamReader file= new StreamReader(fileStream)) 
    { 
    XDocument doc= XDocument.Load(file); 

    foreach (XElement elemento in doc.Elements()) 
    { 
     String name= elemento.Element("name").Value; 
     String url = elemento.Element("url").Value; 
     listSites.Add(new Site(name)); 
    } 
    lstSites.ItemsSource = listSites; 
    } 
} 

上線

XDocument doc= XDocument.Load(file); 

我收到主題的錯誤。你可以幫我嗎 ?

+0

+1。做得好的問題。不過,請在提問時學會使用代碼格式。 :)您可以通過幾種方式對代碼進行格式化...粘貼您的代碼,全部選中,然後按Ctrl + K,或單擊編輯器工具欄上的{}按鈕,或者將每行縮進四個或更多空格。您可以在編輯器下面預覽它,以確保在發佈問題之前格式正確。 :) –

+0

您是否檢查過您的'文件'對象中是否有任何內容。你可以例如通過在行XDocument doc = XDocument.Load(file)上設置一個斷點來檢查它,並使用立即窗口來調用file.ReadToEnd() – ChristiaanV

回答

1

您的文檔(sites.xml)應該有一個根元素,如:

<?xml version="1.0"?> 
<MyRootElement> 
... 
</MyRootElement> 
+0

我想在這裏添加一個根 XDocument sites = new XDocument (新的XElement(「root」)); 但不工作 – JuanS