如何修改XML节点?

时间:2015-02-15 20:14:39

标签: c# xml

我想修改Node my XML File,如下所示。

<Tasks>
   <Task>
      <Title>Title of the Task</Title>
      <Description>Description of the Task</Description>
      <Done>false</Done>
   </Task>

   <Task>
      <Title>Title of anotherTask</Title>
      <Description>Description of anotherTask</Description>
      <Done>true</Done>
   </Task>
 </Tasks>

我可以像这样点击Node:

xmlDoc.SelectSingleNode("/Tasks/Task/Description").InnerText = "My Description";

但是我有多个任务。我如何指出哪个是哪个?我想将任务“完成”的状态从false更改为true。

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式遍历每个结果节点:

foreach( XmlNode xn in xmlDoc.SelectNodes("//Tasks"))
{
    // Do something
}

在每个节点上执行您需要执行的操作。有关SelectNodes的更多信息:https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.selectnodes%28v=vs.110%29.aspx

如果您可以控制XML的设计,也许您应该考虑为您的任务添加ID。 ID将允许您对特定的Task节点进行更改,而不是通过它们进行迭代或通过Task.Title查找。

你也可以看看这些文章:

说完这一切之后,我觉得你的问题遗漏了更多的信息,关于何时正确地做这件事的标准是什么。你能扩展一些吗?你会得到更好的答案。