0

こんにちは、このコードを使用して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のIsolated Storage Explorerでチェックされた適切な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ファイル全体を読み取るだけです。何かアイデアはありますか?

4

2 に答える 2

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

これがすべてを要約していると思います。

于 2012-06-13T13:49:11.280 に答える
0

reader.ReadToEnd() は、ファイル全体を文字列に読み取ります。XML として使用する場合は、XDocument を作成する必要があります。たとえば、次のようになります。

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

次に、LINQ を使用して XML ドキュメントから必要なコンテンツを取得します。

于 2012-06-13T12:39:22.987 に答える