如何获取特定xml元素的值?

时间:2017-03-08 13:14:07

标签: xml linq linq-to-xml

My XML

我希望得到"传递"元素并检查它是否与文本框相同 如果文本框中的文本与" pass"的值相同在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文件,但只要它转到else部分。

请帮助我该怎么做。

1 个答案:

答案 0 :(得分: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");
        }