2012-03-24 8 views
5

私はWP7を初めて使っています。 私はthisチュートリアルを読んでxmlファイルを書きましたが、xmlファイルを読むと、xmlファイルの一番上の行だけが表示されます。気象をチェックする方法がわからないxmlファイルはプログラムによって正しく書き込まれています。WP7 Write Isolated StorageでXmlを読む

1.隔離されたストレージに保存されているxmlファイルをチェックします。

2.この問題を解決する方法。

私のコード分離ストレージでXMLファイル書く:分離ストレージからのXMLファイルを読むために

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

        writer.WriteStartElement("person"); 
        writer.WriteElementString("node1", "value1"); 
        writer.WriteEndElement(); 
        writer.WriteEndDocument(); 
        writer.Flush(); 
       } 
      } 
     } 

コード:

  using (IsolatedStorageFile myIsolatedStorage =   
           IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       IsolatedStorageFileStream isoFileStream = 
         myIsolatedStorage.OpenFile("mz1.xml", FileMode.Open); 
       using (StreamReader reader = new StreamReader(isoFileStream)) 
       { 
        textBlock1.Text= reader.ReadToEnd(); 
       } 
      } 

出力:

 <?xml version="1.0" encoding="utf-8"?> 

答えて

6

、あなたはここのCodePlexから記憶域エクスプローラー分離されたWP7をダウンロードしてインストールすることができます使用する http://wp7explorer.codeplex.com/

その本当に簡単。 app.xaml.csに数行のコードを追加するだけで、すべての設定が完了です。

あなたの2番目の質問に関して、あなたが持っているコードはOKです。私は最近、ちょうどこのようなことをしたちょっとしたWP7アプリを書いています。ここではそのコードの一部です:あなたへ

public List<Task> GetTasks() 
{ 
    var tasks = new List<Task>(); 
    using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) 
    { 
     if (store.FileExists(XmlFile)) 
     { 
      //store.DeleteFile(XmlFile); 
      //XDocument doc = XDocument.Load(store.OpenFile(XmlFile, FileMode.Open)); 
      using (var sr = new StreamReader(new IsolatedStorageFileStream(XmlFile, FileMode.Open, store))) 
      { 
       XDocument doc = XDocument.Load(sr); 
       tasks = (from d in doc.Descendants("task") 
         select new Task 
            { 
             Category = (string) d.Attribute("category"), 
             Id = (string) d.Attribute("id"), 
             Name = (string) d.Element("name"), 
             CreateDate = (DateTime) d.Element("createdate"), 
             DueDate = (DateTime) d.Element("duedate"), 
             IsComplete = (bool) d.Element("isComplete") 
            }).ToList<Task>(); 
      } 
     } 
    } 
    return tasks; 
} 

そのアップしていますが、LinqToXmlを使用して検討する必要があります。これは物事を少しきれいにするIMHO。

私は実際にこれのすべてがここに掲載んブログの記事があります。

http://www.ritzcovan.com/2012/02/building-a-simple-windows-phone-apppart-2/

を、あなたは同様にすべてのコードをダウンロードすることができます。 あなたが役に立ったら嬉しいです。

+0

のthnx @alex reply.Iは、エクスプローラをインストールし、そのマニュアルにはIsolatedStorageExplorerアセンブリへの参照を追加すると言うが、私はエクスプローラ – Mj1992

+0

インストールしたものの集合体は私のVisual Studioに存在しないために@ Mj1992 - 参照の追加ダイアログを開くと、ライブラリが存在するディレクトリを参照し、.dllへの参照を追加する - 通常はC:¥Program Files¥WP7にインストールされている。隔離ストレージエクスプローラ\ライブラリ - hth – Alex

+0

thnx alot私はそれを完全に忘れていたことを指摘するために@アレックス。 – Mj1992

1

あなたが探しています〜のようなものthis?

2

コードが実行され、正常に動作します。私がいないのTextBlockではなく、文字列変数に設定することが、結果を変更した、それは次のように出力します

<?xml version="1.0" encoding="utf-8"?> 
<person> 
    <node1>value1</node1> 
</person> 

私はTextBlockのがちょうど結果の最初の行を示していると思います。あなたの最初の質問に応えて

+0

ええ、あなたしている右のthnx – Mj1992