尽管在以下代码中使用了SaveOptions.DisableFormatting选项:
XDocument xmlDoc = XDocument.Load(FileManager.SourceFile);
string element="campaign";
string attribute="id";
var items = from item in xmlDoc.Descendants(element)
select item;
foreach (XElement itemAttribute in items)
{
itemAttribute.SetAttributeValue(attribute, "it worked!");
//itemElement.SetElementValue("name", "Lord of the Rings Figures");
}
xmlDoc.Save(TargetFile, SaveOptions.DisableFormatting);
Run Code Online (Sandbox Code Playgroud)
目标XML文件将其添加到它:
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
有没有办法保留原始格式,并没有添加版本和编码信息?
目前我的代码导致间歇性的ConcurrentModificationException错误,可能是因为我循环遍历HashMap的方式:
for (Map.Entry<String, Entity> entry : entities.entrySet()) {
String key = entry.getKey();
Entity item = entry.getValue();
if (item.isDestroyed()){
entities.remove(key);
ViewManager.getInstance().removeItem(key);
//INSTRUCT THE ENTITY TO PERFORM IT'S DESTROYED BEHAVIOR item.Destroyed()
} else {
item.update(1);
ConsoleItem ci = new ConsoleItemImpl(item.getIdentifier(), item.getLocation(), ColorStringConverter.getInstance().StringToColor(item.getSide()), item.getAngle(), item.getShape(), item.toString(), item.isDestroyed(), item.isDamaged());
ViewManager.getInstance().updateItem(ci);
}
item.update(1);
}
// updateInfo call
ViewManager.getInstance().updateInfo(summary());
}
Run Code Online (Sandbox Code Playgroud)
如何通过HashMap连续循环并避免出现ConcurrentModificationException错误?