2012-03-24 2 views
5

저는 WP7을 처음 사용합니다. this 튜토리얼을 읽고 XML 파일을 작성했지만 xml 파일을 읽을 때 xml 파일의 맨 위 행만 보여줍니다. xml 파일이 프로그램에 의해 올바르게 작성된 날씨를 확인하는 방법을 모르겠습니다. .WP7 IsolatedStorage에서 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

, 여기에 코드 플렉스에서 저장소 탐색기 격리 WP7을 다운로드하여 설치할 수 있습니다 : 사용하기 http://wp7explorer.codeplex.com/

그것 정말 쉽습니다. app.xaml.cs에 몇 줄의 코드를 추가하면 모든 설정이 완료됩니다.

두 번째 질문과 관련하여 귀하가 갖고있는 코드는 괜찮아 보입니다. 나는 최근 이런 종류의 일을 한 작은 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 사용을 고려할 수 있습니다. 그것은 사물을 조금 더 깨끗하게 만듭니다.

는 사실은 여기에 게시이 모든 것을 수행하는 블로그 게시물이 있습니다

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

을하고 당신은뿐만 아니라 모든 코드를 다운로드 할 수 있습니다. 도움이 되셨기를 바랍니다.

+0

thnx @ 알렉스 reply.I는 탐색기를 설치하고 문서에이 IsolatedStorageExplorer 어셈블리에 대한 참조를 추가 할 말합니다하지만 난 탐험가 – Mj1992

+0

설치 한 있지만 어셈블리 내 비주얼 스튜디오에 존재하지 않습니다에 대한 @ Mj1992 - 참조 추가 대화 상자를 열면 라이브러리가있는 디렉토리를 탐색하고 .dll에 대한 참조를 추가합니다. 일반적으로 C : \ Program Files \ WP7에 설치됩니다. 격리 된 저장소 Explorer \ Library - hth – Alex

+0

thnx @Alex는 내가 그것을 완전히 잊었다는 것을 지적했다. – Mj1992

1

것은 당신이 찾고있는 예 : this?

2

코드가 실행되어 정상적으로 작동합니다. 나는 TextBlock의하지만 문자열 변수로 설정되지되는 결과를 변경 한, 그것은 다음과 같은 출력 :

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

내가 TextBlock에 그냥 결과의 첫 선을 보여줍니다 같아요. 첫 번째 질문에 대한 응답으로

+0

그래 당신이있는 바로 thnx – Mj1992