如何将每个 XmlElement 放在 XmlNodeList 中,然后读取其属性及其值
How to put each XmlElement in XmlNodeList and then read its attributes and its values
我正在阅读 XML 文件,以便我可以获得创建 windows 服务所需的所有信息。
问题是,我必须读取 XmlNodeList 中的所有任务,然后迭代到每个任务元素并读取属性。
我的 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 中,然后对于每个任务我必须读取它的子元素属性及其值。
到目前为止我所取得的成就是,我已经能够获得第一个免费任务的价值 space 在 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);
}
也许是这样的:
XmlNodeList xnList = xmlDoc.SelectNodes("/Tasks/Task");
foreach (XmlNode task in xnList)
{
taskName = task.Attributes["name"].Value;//Name
taskType = task.Attributes["type"].Value;//Type
if(task.HasChildNodes)
{
XmlNodeList child = task.ChildNodes();
if(child != null)
{
taskStartTime = child[0].Attributes["starttime"].Value;//starttime
taskRepeat = child[0].Attributes["repeat"].Value;//rpt
taskEndTime = child[0].Attributes["endtime"].Value;//endtime
}
}
// Do your output here where you have all the values for a task
// Make sure you print before the next line, it will clear out the attribute values.
taskStartTime = taskRepeat = taskEndTime = string.Empty;
}
我正在阅读 XML 文件,以便我可以获得创建 windows 服务所需的所有信息。
问题是,我必须读取 XmlNodeList 中的所有任务,然后迭代到每个任务元素并读取属性。
我的 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 中,然后对于每个任务我必须读取它的子元素属性及其值。
到目前为止我所取得的成就是,我已经能够获得第一个免费任务的价值 space 在 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);
}
也许是这样的:
XmlNodeList xnList = xmlDoc.SelectNodes("/Tasks/Task");
foreach (XmlNode task in xnList)
{
taskName = task.Attributes["name"].Value;//Name
taskType = task.Attributes["type"].Value;//Type
if(task.HasChildNodes)
{
XmlNodeList child = task.ChildNodes();
if(child != null)
{
taskStartTime = child[0].Attributes["starttime"].Value;//starttime
taskRepeat = child[0].Attributes["repeat"].Value;//rpt
taskEndTime = child[0].Attributes["endtime"].Value;//endtime
}
}
// Do your output here where you have all the values for a task
// Make sure you print before the next line, it will clear out the attribute values.
taskStartTime = taskRepeat = taskEndTime = string.Empty;
}