无法根据属性删除节点

时间:2015-05-26 15:16:33

标签: c# xml linq-to-xml

我试图根据节点的一个属性删除XML节点。

XML结构如下所示:

<root>
    <outer>
        <Series  InstanceUID="" TimeStamp="" Delete="true">
          <Image InstanceUID="" File="" TimeStamp=""/>
          <Image InstanceUID="" File="" TimeStamp=""/>
        </Series>
        <Series  InstanceUID="" TimeStamp="" Delete="true">
          <Image InstanceUID="" File="" TimeStamp=""/>
          <Image InstanceUID="" File="" TimeStamp=""/>
        </Series>
        <Series  InstanceUID="" TimeStamp="" Delete="false">
          <Image InstanceUID="" File="" TimeStamp=""/>
          <Image InstanceUID="" File="" TimeStamp=""/>
        </Series>
    </outer>
</root>

如果delete属性等于true,则应删除整个节点。

XElement _XML = XElement.Load(fileLocation);
_XML.Descendants("outer")
    .Elements("Series")
    .Where(x => x.Attribute("Delete").Value == "true")
    .Remove();

查询似乎正在拾取正确的节点,因为如果我用Select(x =&gt; x)替换Remove(),它会选择delete =&#34; true&#34;节点。 我到底错在了什么?

1 个答案:

答案 0 :(得分:1)

修改detailViewController后,您已将原始xml加载到 - 您需要保存更改,因为加载数据后UISplitViewController不再以某种方式与源文件“连接”。

所以在你的代码中添加这样的东西:

XElement