【发布时间】:2008-11-03 20:41:28
【问题描述】:
我想去掉出现的特定标记,保持内部 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();
}
但是在第二次通过循环时,我得到了一个空引用,大概是因为通过更改集合使其无效。在可能很大的文档上删除这些标签的有效方法是什么?
【问题讨论】: