Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ RemoveChild()

virtual XmlNode System.Xml.XmlNode.RemoveChild ( XmlNode oldChild)
inlinevirtualinherited

Reimplemented in System.Xml.XmlAttribute, and System.Xml.XmlUnspecifiedAttribute.

Definition at line 662 of file XmlNode.cs.

663 {
664 if (!IsContainer)
665 {
667 }
668 if (oldChild.ParentNode != this)
669 {
671 }
672 XmlLinkedNode xmlLinkedNode = (XmlLinkedNode)oldChild;
673 string value = xmlLinkedNode.Value;
674 XmlNodeChangedEventArgs eventArgs = GetEventArgs(xmlLinkedNode, this, null, value, value, XmlNodeChangedAction.Remove);
675 if (eventArgs != null)
676 {
678 }
679 XmlLinkedNode lastNode = LastNode;
681 {
682 if (xmlLinkedNode == lastNode)
683 {
684 LastNode = null;
685 xmlLinkedNode.next = null;
687 }
688 else
689 {
690 XmlLinkedNode next = xmlLinkedNode.next;
691 if (next.IsText && xmlLinkedNode.IsText)
692 {
694 }
695 lastNode.next = next;
696 xmlLinkedNode.next = null;
697 xmlLinkedNode.SetParent(null);
698 }
699 }
700 else if (xmlLinkedNode == lastNode)
701 {
702 XmlLinkedNode xmlLinkedNode2 = (XmlLinkedNode)xmlLinkedNode.PreviousSibling;
705 xmlLinkedNode.next = null;
707 }
708 else
709 {
710 XmlLinkedNode xmlLinkedNode3 = (XmlLinkedNode)xmlLinkedNode.PreviousSibling;
711 XmlLinkedNode next2 = xmlLinkedNode.next;
712 if (next2.IsText)
713 {
714 if (xmlLinkedNode3.IsText)
715 {
717 }
718 else if (xmlLinkedNode.IsText)
719 {
721 }
722 }
724 xmlLinkedNode.next = null;
725 xmlLinkedNode.SetParent(null);
726 }
727 if (eventArgs != null)
728 {
730 }
731 return oldChild;
732 }
static string Xdom_Node_Remove_Child
Definition SR.cs:1342
static string Xdom_Node_Remove_Contain
Definition SR.cs:1340
Definition SR.cs:7
virtual XmlNodeChangedEventArgs GetEventArgs(XmlNode node, XmlNode oldParent, XmlNode newParent, string oldValue, string newValue, XmlNodeChangedAction action)
Definition XmlNode.cs:1239
virtual bool IsContainer
Definition XmlNode.cs:124
static void NestTextNodes(XmlNode prevNode, XmlNode nextNode)
Definition XmlNode.cs:1274
virtual void AfterEvent(XmlNodeChangedEventArgs args)
Definition XmlNode.cs:1261
virtual void BeforeEvent(XmlNodeChangedEventArgs args)
Definition XmlNode.cs:1253
static void UnnestTextNodes(XmlNode prevNode, XmlNode nextNode)
Definition XmlNode.cs:1279
virtual ? XmlLinkedNode LastNode
Definition XmlNode.cs:127
virtual ? XmlNode FirstChild
Definition XmlNode.cs:120
virtual void SetParent(XmlNode node)
Definition XmlNode.cs:1195

References System.Xml.XmlNode.AfterEvent(), System.Xml.ArgumentException, System.Xml.XmlNode.BeforeEvent(), System.Xml.Dictionary, System.Xml.XmlNode.FirstChild, System.Xml.XmlNode.GetEventArgs(), System.Xml.XmlNode.IsContainer, System.Xml.XmlNode.IsText, System.Xml.XmlNode.LastNode, System.Xml.XmlNode.NestTextNodes(), System.Xml.XmlLinkedNode.next, System.Xml.XmlLinkedNode.PreviousSibling, System.Xml.XmlNode.SetParent(), System.Xml.XmlNode.UnnestTextNodes(), System.value, System.Xml.XmlNode.Value, System.SR.Xdom_Node_Remove_Child, and System.SR.Xdom_Node_Remove_Contain.

Referenced by System.Xml.XmlNode.AppendChild(), System.Xml.DocumentXPathNavigator.DeleteToFollowingSibling(), System.Xml.XmlDataDocument.DemoteDocumentElement(), System.Data.XmlTreeGen.HandleTable(), System.Xml.XmlNode.InsertAfter(), System.Xml.XmlNode.InsertBefore(), System.Xml.XmlNode.Normalize(), System.Xml.XmlNode.RemoveAll(), System.Xml.XmlBoundElement.RemoveAllChildren(), System.Xml.XmlAttribute.RemoveChild(), System.Xml.XmlUnspecifiedAttribute.RemoveChild(), System.Xml.XmlNode.ReplaceChild(), System.Data.XmlTreeGen.SchemaTree(), and System.Data.XmlTreeGen.SchemaTree().