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

How to get value of a specific xml element?

我想获取 "pass" 元素的值并检查它是否与文本框相同 如果文本框中的文本与 xml 文件中 "pass" 元素的值相同,我应该打开下一个表单。

这是我的 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 文件正在被正确读取,但任何时候它都会转到其他部分。

请帮我看看我该怎么做。

您应该将结果列在一个列表中。这就是为什么它不能得到计数。

此外,我建议您使用 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");
        }