2014-10-30 68 views
0

我有这样的XML文件:的LINQ to XML文件

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Table> 
    <User> 
    <Danik>ID15101639</Danik> 
    <ID15101639>Danik</ID15101639> 
    </User> 
    <User> 
    <Marcel>ID29101645</Marcel> 
    <ID29101645>Marcel</ID29101645> 
    </User> 
</Table> 

而且我需要在这个文件中搜索 - 如果像“Danik”(textbox1.Text)用户开关输入名字就应该告诉他“ID15101639” 。

private void button1_Click(object sender, EventArgs e) 
     { 
      jmeno = textBox1.Text; 
      XElement xelement = XElement.Load("seznam.xml"); 
      IEnumerable<XElement> Table = xelement.Elements(); 
      foreach (var User in Table) 
      { 
       overeni = User.Element(jmeno).Value; 
       textBox2.Text = overeni; 
} 

不幸的是,这不能正常工作。你能否请教建议问题在哪里?

它显示第12行上的错误 - overeni = User.Element(jmeno).Value; 错误:System.Linq的using指令出现在这个命名空间的前面。

+0

它是如何工作不正常?一个错误?错误的结果? – 2014-10-30 11:21:58

+0

好的问题,你可能应该也应该告诉问题=问题 – Doro 2014-10-30 11:23:20

+0

我很抱歉 - 它没有在XML文件中找到名称。 – user3069602 2014-10-30 11:27:46

回答

0

你可以试试这个方法,而不是避免空引用异常:

//filter only <Tables> having child element <{jmeno}> 
//then return that <{jmeno}> element 
XElement User = xelement.Elements() 
         .Where(o => o.Element(jmeno) != null) 
         .Select(o => o.Element(jmeno)) 
         .FirstOrDefault(); 
if (User != null) 
{ 
    overeni = User.Value; 
    textBox2.Text = overeni; 
} 
+0

超级!这工作正常!谢谢! – user3069602 2014-10-30 13:35:06