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