Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何修改XML节点?_C#_Xml - Fatal编程技术网

C# 如何修改XML节点?

C# 如何修改XML节点?,c#,xml,C#,Xml,我想修改我的XML文件中的节点,如下所示 <Tasks> <Task> <Title>Title of the Task</Title> <Description>Description of the Task</Description> <Done>false</Done> </Task> <Task> &l

我想修改我的XML文件中的节点,如下所示

<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>

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

您可以通过如下方式迭代每个结果节点:

foreach( XmlNode xn in xmlDoc.SelectNodes("//Tasks"))
{
    // Do something
}
在每个节点上执行需要执行的操作。有关SelectNodes的更多信息,请单击此处:

如果您对XML的设计有控制权,也许您应该考虑将ID添加到任务中。ID将允许您对特定的任务节点进行更改,而不是遍历它们或按Task.Title查找

您还可以查看以下文章:


说了这么多,我觉得你的问题缺少了更多的信息,关于何时正确地做这件事的标准是什么。你能再扩大一些吗?这样你会得到更好的答案。

你有没有尝试过谷歌搜索?我很确定
上已经有很多这样的工作示例,所以
在你的xpath上设置一个过滤器。可能是重复的嘿,是的,我可以控制XML文件。您将如何实现ID?我想创建一个简单的待办事项列表。这是一个复选框,在CheckedChange事件中,我想将任务从“处理”(Done=false)选项卡移动到“完成”(Done=true)。这是可行的,但是我想更改XML文件中的值。。我不知道该怎么做。我将对ID做一些研究,这似乎是一个好方法。:)在我看来,它可以像:[某个唯一标识符]…完成更改后,不要忘记保存(XmlDocument.save)。请参阅:如果您需要有关XPath的帮助,它将如下所示:“/Tasks/Task[ID=35.00]”。见:
foreach( XmlNode xn in xmlDoc.SelectNodes("//Tasks"))
{
    // Do something
}