的子節點所以我currentlty試圖解析它看起來像這樣的XML文件:我想在每個員工閱讀讀取XML文件 - 讀取其中有任意數量的子節點
<employees>
<employee>
<id>1</id>
<projects>
<projectID>7</projectID>
<projectID>3</projectID>
</projects>
</employee>
<employee>
<id>2</id>
<projects>
<projectID>4</projectID>
</projects>
</employee>
</employees>
和出現任何數量的項目。 Employee對象是一個字符串和列表(int)。
目前我有:
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNodeList xmlNodes = doc.DocumentElement.SelectNodes("/employees/employee");
foreach (XmlNode xmlNode in xmlNodes)
{
string id;
List<int> projects = new List<int>();
id = xmlNode.SelectSingleNode("id").InnerText;
//this is the bit. What I have works but it feels like it could
//be majorly refined. Is there a better way to construct the foreach below?
foreach (XmlNode node in xmlNode.ChildNodes.Item(1))
//index 1 is the projects node
{
projects.Add(int.Parse(node.InnerText));
}
//
Employee e = new Employee(id, projects);
e.Add(e);
}
如果XML文件本身就是一個問題,它可以改變,以適應解析。
謝謝。
您是否必須使用XmlDocument?使用LINQ to XML(XDocument等)通常使事情變得更簡單。 –
你想完善什麼?有沒有任何性能問題,或者你現在不喜歡代碼的外觀? –
如果您使用XMLDocument,則可以使用Enumerator並查看每個節點。例如 - XmlNodeList xmlNodes = doc.DocumentElement.SelectNodes(「/ employees/employee」); IEnumerator enumList = doc.GetEnumerator()然後通過它循環 – HappyLee