c# - 如何检查 XmlDocument 是否已更改?

标签 c# .net xml c#-4.0

我有条件地更改我代码的各个部分中的 XmlDocumentXmlDocument 对象没有为此传递“已更改”标志(如 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 标志,但它确实有像 NodeChangedNodeInsertedNodeRemoved,您可以使用它来保留一个标志,您不需要将其传递给任何变异方法:

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/

相关文章:

c# - 删除 xml :base attribute from an XDocument

c# - Texture2D.GetData() 返回不同的数据

c# - Visual C# GUI设计器基础教程

c# - F# 脚本调用 C# exe 时的 log4net 问题

.net - 使用 Windows 窗体技能进行 Silverlight/WPF 编程

c# - 警告用户 .NET Framework 要求

c# - 找不到应用程序依赖项 list 中指定的程序集 :

c# - 设置 SmartNavigation=True 会导致 javascript offset.Width/offset.Height 出错

java - ActionBar 问题 : NPE

asp.net - css,按钮选择和html标签