2012-06-13 43 views
0

您好我使用此代碼保存爲XML文件讀取XML文件的從隔離儲存

using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
     { 
      using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("test.xml", FileMode.Create, myIsolatedStorage)) 
      { 
       XmlWriterSettings settings = new XmlWriterSettings(); 
       settings.Indent = true; 
       using (XmlWriter writer = XmlWriter.Create(isoStream, settings)) 
       { 

        writer.WriteStartElement("t", "test", "urn:test"); 
        writer.WriteStartElement("TestA", ""); 
        writer.WriteString(lbTestA.Text); 
        writer.WriteEndElement(); 
        writer.WriteStartElement("TestB", ""); 
        writer.WriteString(lbTestB.Text); 
        writer.WriteEndElement(); 

        writer.WriteEndDocument(); 

        writer.Flush(); 
       } 
      } 
     } 

一定的值,並將它創建了獨立存儲資源管理器檢查WP7對xml文件,現在我只想要閱讀存儲的值在和標籤的唯一代碼,我可以用是這樣的一個

private void loadgame_Click(object sender, EventArgs e) 
     { 
      using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       IsolatedStorageFileStream isoFileStream = myIsolatedStorage.OpenFile("test.xml", FileMode.Open); 
       using (StreamReader reader = new StreamReader(isoFileStream)) 
       { 
        lsScore.DataContext = reader.ReadToEnd(); 
       } 
      } 
     } 

,但它只是讀取整個XML文件,因爲它只是一個文本,任何想法?

回答

0

讀取xml文件的代碼。我使用的值之間的分隔符和以後使用的.Split到單獨的值

private void loadtest_Click(object sender, EventArgs e) 
     { 

    IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication(); 
       if (storage.FileExists("test.xml")) 
       { 

      IsolatedStorageFileStream fileStream = storage.OpenFile("test.xml", FileMode.Open, FileAccess.ReadWrite); 

       XDocument test = XDocument.Load(fileStream); 
       string score = test.Root.Value.ToString(); 

       string[] scores = score.Split(','); 
       foreach (string s in scores) 
       { 
        lbTestAScore.Text= scores[0].ToString(); 
        lbTestBScore.Text = scores[1].ToString(); 
       } 

XML文件

<?xml version="1.0" encoding="utf-8"?> 
<test> 
    <TeamA>300</TeamA> 
    <Seperator>,</Seperator> 
    <TeamB>-200</TeamB> 
</test> 

從串score = test.Root.Value.ToString();

是300輸出,-200

我認爲這總結了一切。

0

reader.ReadToEnd()將整個文件讀入字符串。如果你想把它當作XML,你必須構建一個XDocument,e.g:

var doc = XDocument.Parse(reader.ReadToEnd()); 

然後收到使用LINQ XML文檔你想要的內容。