我正在使用表单来显示XML元素.每次我点击列表框中的模块时,我想<Code>在表单上的标签中显示其值.我遇到的问题是,我所做的就是XML被一次性读取,而我无法或不知道如何在我的XML文件中搜索.所以我想我只需要一种搜索XML来查找<Code>元素的方法.
编辑:<Code>当我匹配<Name>列表框中的元素时,我试图在标签中显示元素的程度如下:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var document = XDocument.Load(workingDir + @"\ModulesList.xml");
var code = from d in document.Descendants("Name")
where d.Value == listBox1.SelectedItem.ToString()
select d.Parent.Element("Code").Value;
labelCodeNumber.Text = code.ToString();
}
Run Code Online (Sandbox Code Playgroud)
但问题是labelCodeNumber没有显示值code,而是显示了一些奇怪的集合.另外我不确定我是否正在输出正确的ielabelCodeNumber.Text = code.ToString();
这是XML:
<?xml version="1.0" encoding="utf-8" ?>
<SoftwareEngineering>
<Module>
<Name>Algorithms and Data Structures</Name>
<Code>3SFE504</Code>
<Capacity>5</Capacity>
<Semester>1</Semester>
<Prerequisite>none</Prerequisite>
</Module>
<Module>
<Name>3D Graphics I</Name>
<Code>3SFE508</Code>
<Capacity>5</Capacity>
<Semester>1</Semester>
<Prerequisite>none</Prerequisite>
</Module>
<Module>
<Name>Event-Driven Programming</Name>
<Code>3SFE513</Code>
<Capacity>10</Capacity>
<Semester>1</Semester>
<Prerequisite>none</Prerequisite>
</Module>
<Module> …Run Code Online (Sandbox Code Playgroud)