【发布时间】:2012-04-30 04:28:11
【问题描述】:
Linq to XML 的新手如何删除 xml 节点(递归使用关系)并保存文档。
xml 的结构无法更改,因为它来自服务。以下是来自任务服务的 xml。每个任务都可以有嵌套任务,其中可能有一个或多个嵌套任务。嵌套旨在达到N level。
当使用 linq to xml 删除其中一个父任务时,我如何删除它的所有子任务?
我如何知道成功移除的所有节点?
XML:
<Tasks>
<Task ID="1">Clean the Room</Task>
<Task ID="2">Clean the Closet</Task>
<Task ID="3" ParentId="2">Remove the toys</Task>
<Task ID="4" ParentId="3">Stack action Figures on Rack</Task>
<Task ID="5" ParentId="3">Put soft toys under bed</Task>
</Tasks>
在上面的xml中,当taskId=2被删除时,它的子任务即Id = 3应该被删除。由于3 被删除,它的子任务4 和5 也应该被删除。
【问题讨论】:
-
我不明白你的结构。您声明如果应该删除
Task=1、2,3,4,5,但它们都没有ParentID=1。你是说Task=2吗? -
@ErikPhilips 很抱歉造成混乱。任务通过 parentid 属性与另一个任务相关联。因此,当删除带有
ID = 2的任务时,它的子任务(带有ParentId = 2的任务)也应该被删除。这个过程一直持续到当前删除的任务没有节点为止。
标签: c# xml linq file-io linq-to-xml