我有这样的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指令主要出现在此命名空间中。
答案 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;
}