Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取错误“;缺少根元素";当我尝试在textblock中获取标记时_C#_Xml_Windows Runtime - Fatal编程技术网

C# 获取错误“;缺少根元素";当我尝试在textblock中获取标记时

C# 获取错误“;缺少根元素";当我尝试在textblock中获取标记时,c#,xml,windows-runtime,C#,Xml,Windows Runtime,我想从xml文件中获取标记,以在textblock中获取它 我的代码是: private async void btnPlantel_Click(object sender, RoutedEventArgs e) { try { var doc = XDocument.Parse(txtnome.Text); var doc2 = XDocument.Parse(txtshirtnumber.

我想从xml文件中获取标记,以在textblock中获取它

我的代码是:

    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>

里卡多·费雷拉·罗德里格斯
1.
但是我在txtbox中得到的只是错误“根元素丢失”。有人能帮我吗?

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

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

步骤:

  • 读取文本文件
  • 使用XDocument.Parse解析xml
  • 用xml文档中的值填充文本框
在从文件加载xml之前,尝试解析xml(XDocument.parse)。无需读取文件两次,无需解析xml两次

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

步骤:

  • 读取文本文件
  • 使用XDocument.Parse解析xml
  • 用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");