我有条件地更改我代码的各个部分中的 XmlDocument
。 XmlDocument
对象没有为此传递“已更改”标志(如 isDirty
)吗?
var doc = new XmlDocument();
doc.Load(file);
if (...) parent.AppendChild(element);
if (...) parent2.AppendChild(element2);
if (...) parent3.AppendChild(element3);
//METHOD DOESN'T EXIST
if (doc.isDirty())
doc.Save(file);
最佳答案
虽然 XmlDocument 没有公开 IsDirty 标志,但它确实有像 NodeChanged、NodeInserted 和NodeRemoved,您可以使用它来保留一个标志,您不需要将其传递给任何变异方法:
var doc = new XmlDocument();
doc.Load(file);
bool changed = false;
XmlNodeChangedEventHandler handler = (sender, e) => changed = true;
doc.NodeChanged += handler;
doc.NodeInserted += handler;
doc.NodeRemoved += handler;
// do some work
if (changed)
doc.Save(file);
关于c# - 如何检查 XmlDocument 是否已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15500438/