public void RejectChanges() { for (int i = changes.Count - 1; i >= 0; i--) { Insertion ins = changes [i] as Insertion; if (ins != null) { ins.ParentNode.RemoveChild(ins.InsertedNode); continue; } Removal rem = changes [i] as Removal; if (rem != null) { if (rem.RemovedNode.NodeType == XmlNodeType.Attribute) { XmlElement el = (XmlElement)rem.OwnerNode; el.SetAttributeNode((XmlAttribute)rem.RemovedNode); } else { rem.OwnerNode.InsertBefore(rem.RemovedNode, rem.NextSibling); } continue; } AttributeUpdate au = changes [i] as AttributeUpdate; if (au != null) { if (au.OldAttribute != null) { au.Element.SetAttributeNode(au.OldAttribute); } else { au.Element.RemoveAttributeNode(au.NewAttribute); } continue; } } changes.Clear(); }
internal bool DeleteNode(XmlNode node) { Removal rem = new Removal(); if (node.NodeType == XmlNodeType.Attribute) { XmlAttribute attr = node as XmlAttribute; rem.OwnerNode = attr.OwnerElement; rem.RemovedNode = node; attr.OwnerElement.RemoveAttributeNode(attr); return(false); } else { rem.OwnerNode = node.ParentNode; rem.NextSibling = node.NextSibling; rem.RemovedNode = node; node.ParentNode.RemoveChild(node); return(rem.NextSibling != null); } }
internal bool DeleteNode (XmlNode node) { Removal rem = new Removal (); if (node.NodeType == XmlNodeType.Attribute) { XmlAttribute attr = node as XmlAttribute; rem.OwnerNode = attr.OwnerElement; rem.RemovedNode = node; attr.OwnerElement.RemoveAttributeNode (attr); return false; } else { rem.OwnerNode = node.ParentNode; rem.NextSibling = node.NextSibling; rem.RemovedNode = node; node.ParentNode.RemoveChild (node); return rem.NextSibling != null; } }