选择XML文件的某些部分

时间:2011-04-14 18:07:00

标签: c# xml

您好我有一个C#窗体,上面有两个列表框。左侧包含16个可注册的学生模块代码列表。用户从左侧选择一个模块以转移到右侧框。到目前为止,我已经开始工作了,单击选择按钮时模块代码会传输。

一旦模块被转移,我需要点击它并打印到XML文件中保存的完整模块详细信息的标签(位于其右侧)。

我能够读取XML文件的内容并将其输出到标签(所有内容)。我需要做的就是在标签上打印出“SELECTED模块”的详细信息。所以我必须以某种方式读取XML文件并选择用户选择的特定模块/模块?所以,如果他/她选择8个模块,那么我只想在标签上显示所有这些模块的详细信息?

3 个答案:

答案 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;
    }