您好我有一个C#窗体,上面有两个列表框。左侧包含16个可注册的学生模块代码列表。用户从左侧选择一个模块以转移到右侧框。到目前为止,我已经开始工作了,单击选择按钮时模块代码会传输。
一旦模块被转移,我需要点击它并打印到XML文件中保存的完整模块详细信息的标签(位于其右侧)。
我能够读取XML文件的内容并将其输出到标签(所有内容)。我需要做的就是在标签上打印出“SELECTED模块”的详细信息。所以我必须以某种方式读取XML文件并选择用户选择的特定模块/模块?所以,如果他/她选择8个模块,那么我只想在标签上显示所有这些模块的详细信息?
答案 0 :(得分:0)
在MSDN上查找System.Xml.XmlDocument或System.Xml.Linq.XDocument的文档。 如果您的课程是XML元素,您的代码可能如下所示:
XmlDocument doc = new XmlDocument();
doc.Load(stream); // you can load it from stream, textreader or use LoadXml to init it from string
XmlNodeList courseNodes = doc.DocumentElement.SelectNodes("/rootelement/courseelement"); // provide a valid Xpath here
//work with courseNodes
答案 1 :(得分:0)
var selectedNodes = doc.Descendants("node")
.Where(x => (string)x.Attribute("type") == "selected1" || (string)x.Attribute("type") == "selected2" || etc...)
.ToList();
答案 2 :(得分:0)
你可以使用Linq到Xml。 这是一个小样本
private const string modulesXml =
"<modules><module id =\"m1\">data1</module><module id =\"m2\">data2</module><module id =\"m3\">data3</module></modules>";
public string GetModule(string id)
{
var modules = XDocument.Parse(modulesXml);
return modules.Descendants("module").First(n => n.Attribute("id").Value == id).Value;
}