我想删除特定标记的出现,使内部XML保持不变。我希望通过一次传递来完成此操作(而不是搜索,替换,并从头开始)。例如,从源头:从XML中删除标记出现
<element>
<RemovalTarget Attribute="Something">
Content Here
</RemovalTarget>
</element>
<element>
More Here
</element>
我希望得到的结果是:
<element>
Content Here
</element>
<element>
More Here
</element>
我已经试过这样的事情(原谅我,我是新来的LINQ):
var elements = from element in doc.Descendants()
where element.Name.LocalName == "RemovalTarget"
select element;
foreach (var element in elements) {
element.AddAfterSelf(element.Value);
element.Remove();
}
但通过循环的第二次我得到一个空引用,大概是因为该集合通过更改它是无效的。什么是一个有效的方式来在一个潜在的大文件上移除这些标签?
。如果RemovalTarget元素包含子元素,则值无效 – 2008-11-03 21:18:42