2017-03-08 47 views
0

My XML如何獲取特定xml元素的值?

我想獲得「通行證」元素的價值,並檢查它是否是相同的與文本 ,如果在文本框中的文本是相同的,在XML文件中的「通行證」元素的值,我應該打開下一個表格。

這裏是我的C#代碼:

   sifre = txtsifre.Text; 

      XDocument doc = XDocument.Load(path + "\\Resources\\gbirligi.xml"); 

      var cek = from ss in doc.Root.Descendants("Siparis") 
         where ss.Element("pass").Value == sifre 
         select ss; 
      if (cek.Count()==1) 
      { 
       AnaMenu mn = new AnaMenu(); 
       this.Hide(); 
       mn.Show(); 
      } 
      else 
      { 
       MessageBox.Show("Invalid password"); 
      } 

我找不到我究竟做錯了。正在正確讀取Xml文件,但任何時候它都會轉到其他部分。

請幫我,我該怎麼做。

回答

0

你應該得到你的結果到一個列表。這就是爲什麼它無法計數。

此外,我建議您使用cek.Count() > 0而不是cek.Count() == 1控制。試試這個:

var cek = (from ss in doc.Root.Descendants("Siparis") 
        where ss.Element("pass").Value == sifre 
        select ss).ToList(); 
     if (cek.Count() > 0) 
     { 
      AnaMenu mn = new AnaMenu(); 
      this.Hide(); 
      mn.Show(); 
     } 
     else 
     { 
      MessageBox.Show("Invalid password"); 
     }