2011-11-17 56 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