我希望有效地(即在一次通过中)替换XML树中的多个节点。
foreach (Object x in xmlTree.Nodes())
{
XElement e = x as XElement;
if (e != null)
{
switch (e.Name.LocalName)
{
case "a":
e.ReplaceWith(new XElement("red", (string)e));
break;
case "b":
e.ReplaceWith(new XElement("blue", (string)e));
break;
// And a few other mappings...
}
}
}
我认为上面的代码在第一次替换后使迭代器失效。