C# 一次解析XML元素

C# 一次解析XML元素,c#,xml-parsing,C#,Xml Parsing,我有一个和平的xml,我需要收集信息了 <response> <students> <student> <educationalinstitutionname>Test One</educationalinstitutionname> <academicqualificationtype>TestLevel One</academicqualificationtype>

我有一个和平的xml,我需要收集信息了

<response>
<students>
    <student>
        <educationalinstitutionname>Test One</educationalinstitutionname>
        <academicqualificationtype>TestLevel One</academicqualificationtype>
        <starttime>22/02/06</starttime>
        <endtime>19/08/10</endtime>
        <grade>A</grade>
    </student>
    <student>
        <educationalinstitutionname>Test One</educationalinstitutionname>
        <academicqualificationtype>TestLevel Two</academicqualificationtype>
        <starttime>22/02/06</starttime>
        <endtime>19/08/10</endtime>
        <grade>B</grade>
    </student>
    <student>
        <educationalinstitutionname>Test Two</educationalinstitutionname>
        <academicqualificationtype>TestLevel Two</academicqualificationtype>
        <starttime>22/02/06</starttime>
        <endtime>19/08/10</endtime>
        <grade>C</grade>
    </student>
    <student>
        <educationalinstitutionname>Test Two</educationalinstitutionname>
        <academicqualificationtype>TestLevel Three</academicqualificationtype>
        <starttime>22/02/06</starttime>
        <endtime>19/08/10</endtime>
        <grade>D</grade>
    </student>
</students>

我发现的问题是,我似乎无法一次循环使用该名称,并为该机构收集该名称下文件中的所有信息。感谢您提供的任何帮助

目前还不清楚您具体想实现什么目标。我假设您基本上想要
标记中大多数节点的值:

XmlNodeList WordXMLNodeLists = XmlResponceDoc.SelectNodes("/response/students/student");

foreach (XmlNode GradeItem in WordXMLNodeLists)
{
    string GetStartDate = GradeItem.SelectSingleNode("./starttime").InnerText;
    string GetEndDate = GradeItem.SelectSingleNode("./endtime").InnerText;
    string GetEstablishmentName = GradeItem.SelectSingleNode("./educationalinstitutionname").InnerText;
    string GetGrade = GradeItem.SelectSingleNode("./grade").InnerText;
    //do something with data gathered above
}

非常感谢我编辑了一些我需要它做的事情,我已经解决了我的问题。请问xpath开头的“.”代表什么?它表示xpath是相对于当前
GradItem
节点的。如果开头没有
,不管您从
GradItem
调用
SelectSingleNode()
方法,XPath都被认为是相对于XmlDocument的根的
XmlNodeList WordXMLNodeLists = XmlResponceDoc.SelectNodes("/response/students/student");

foreach (XmlNode GradeItem in WordXMLNodeLists)
{
    string GetStartDate = GradeItem.SelectSingleNode("./starttime").InnerText;
    string GetEndDate = GradeItem.SelectSingleNode("./endtime").InnerText;
    string GetEstablishmentName = GradeItem.SelectSingleNode("./educationalinstitutionname").InnerText;
    string GetGrade = GradeItem.SelectSingleNode("./grade").InnerText;
    //do something with data gathered above
}