检查XML文件中是否存在元素内容

时间:2014-02-24 11:59:07

标签: c# linq

这是我的XML文件

<Customer>
  <PrivateCustomer>
    <Adresse>USA</Adresse>
    <Phone>12345678</Phone>
    <Name>Zaghi</Name>
    <Age>20</Age>
    <Sex>Man</Sex>
  </PrivateCustomer>
  <PrivateCustomer>
    <Adresse>USA</Adresse>
    <Phone>12345678</Phone>
    <Name>John</Name>
    <Age>22</Age>
    <Sex>Woman</Sex>
  </PrivateCustomer>
</Customer>

我不希望有重复的电话号码。当我在文本框中输入电话号码时,我希望它检查号码是否已存在或不存在。如果存在则应该出现错误。

以下是我的C#代码的一小部分:

XDocument doc = new XDocument();
doc = XDocument.Load("PrivateCustomer.xml");

var NumberExist = doc.Descendants("PrivateCustomer").Where(x => !x.Elements("Phone").Any());


if (NumberExist != null)
{
    MessageBox.Show("Number already exist");
}

1 个答案:

答案 0 :(得分:1)

您可以使用Any方法:

XDocument doc = XDocument.Load("PrivateCustomer.xml");
var NumberExist = doc.Descendants("PrivateCustomer")
                .Any(x => (string)x.Element("Phone") == textBox1.Text);

if(NumberExist)
{ 
    MessageBox.Show("Number already exist");
} 

如果所有PrivateCustomers至少有一个Phone,则您的查询将始终返回 null 。使用带有{{1}的条件并检查是否存在具有给定电话号码的Any