0

我想从 xml 文件中获取标签以在文本块中获取它。

我的代码是:

    private async void btnPlantel_Click(object sender, RoutedEventArgs e)
    {
         try
         {
             var doc = XDocument.Parse(txtnome.Text);
             var doc2 = XDocument.Parse(txtshirtnumber.Text);
             StorageFolder storageFolder = Package.Current.InstalledLocation;
             StorageFile storageFile = await storageFolder.GetFileAsync("players2.xml");

             txtnome.Text = await FileIO.ReadTextAsync(storageFile, Windows.Storage.Streams.UnicodeEncoding.Utf8);
             txtshirtnumber.Text = await FileIO.ReadTextAsync(storageFile, Windows.Storage.Streams.UnicodeEncoding.Utf8);

             txtnome.Text = (string)doc.Root.Element("name");
             txtshirtnumber.Text = (string)doc2.Root.Element("shirtnumber");

         }
         catch (Exception ex)
         {
             txterror.Text = ex.Message;
         }
}

和xml是:

   <player>
     <name>Ricardo Ferreira Rodrigues</name>
     <shirtnumber>1</shirtnumber>
   </player>

但我在 txtbox 中得到的只是错误“缺少根元素”。有人可以帮助我吗?

4

1 回答 1

3

您尝试在从文件加载之前解析 xml( XDocument.Parse )。无需两次读取文件,无需两次解析 xml。

事实上你所有的代码都是乱码的,应该是这样的(未经测试)

 StorageFolder storageFolder = Package.Current.InstalledLocation;
 StorageFile storageFile = await storageFolder.GetFileAsync("players2.xml");

 string xml = await FileIO.ReadTextAsync(storageFile, Windows.Storage.Streams.UnicodeEncoding.Utf8);

 var doc = XDocument.Parse(xml);

 txtnome.Text = (string)doc.Root.Element("name");
 txtshirtnumber.Text = (string)doc.Root.Element("shirtnumber");

脚步:

  • 读取文本文件
  • 使用 XDocument.Parse 解析 xml
  • 用 xml 文档中的值填充文本框
于 2013-09-02T17:34:49.857 回答