我正在閱讀XML文件,以便我可以獲得製作Windows服務所需的全部信息。如何將每個XmlElement放入XmlNodeList中,然後讀取其屬性及其值
問題是,我必須讀取XmlNodeList中的所有任務,然後遍歷每個Task元素並讀取屬性。
我的XML文件是這樣的:
<Tasks>
<Task name="taskname1" type="tasktype1">
<Occurrence starttime="09:00" repeat="01:00" endtime="17:00" />
<FreeSpace disk=」C」 />
</Task>
<Task name="taskname2" type="tasktype2">
<Occurrence startime="11:00" repeat="00:05" endtime="13:00" />
</Task>
</Tasks>
所以,我想的是,每個任務都會被保存在一個XmlNodeList中,然後爲每個任務我要讀它的子元素的屬性和它的值。
到目前爲止,我已經實現了那是什麼,我已經能夠得到的只有第一個任務的值是C.
我的代碼只是讀第一個任務的自由空間。
XmlNodeList xnList = xmlDoc.SelectNodes("/Tasks/Task");
foreach (XmlNode task in xnList)
{
taskName = task.Attributes["name"].Value;//Name
taskType = task.Attributes["type"].Value;//Type
Console.WriteLine(taskName + " " + taskType);
}
XmlNodeList List = xmlDoc.SelectNodes("/Tasks/Task/Occurrence");
foreach (XmlNode task1 in List)
{
taskStartTime = task1.Attributes["starttime"].Value;//starttime
taskRepeat = task1.Attributes["repeat"].Value;//rpt
taskEndTime = task1.Attributes["endtime"].Value;//endtime
Console.WriteLine(taskStartTime + " " + taskRepeat + " " + taskEndTime);
}
道歉,這不回答你的問題,但你在做什麼會使用LINQ到XML是非常容易。將你的Xml加載到一個XDocument中,並使用Linq來查詢它所需的XElements。這些屬性只是XElement上的XAttribute對象的集合。 – Kevin
@Kevin我必須這樣做,而不使用linq –
你有沒有嘗試在第二行停下來,並調試,以查看列表中最終有多少任務? – Kevin