LINQ to XML文件

时间:2014-10-30 11:19:40

标签: xml linq

我有这样的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>

我需要在这个文件中搜索 - 如果用户输入的名称如&#34; Danik&#34; (textbox1.Text)它应该显示他&#34; ID15101639&#34;。

   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指令主要出现在此命名空间中。

1 个答案:

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