System.Xml.XmlDocument.NormalizeText C# (CSharp) Method

NormalizeText() private method

private NormalizeText ( XmlNode n ) : XmlNode
n XmlNode
return XmlNode
        private XmlNode NormalizeText(XmlNode n)
        {
            XmlNode retnode = null;
            while (IsTextNode(n.NodeType))
            {
                retnode = n;
                n = n.PreviousSibling;

                if (n == null)
                {
                    XmlNode intnode = retnode;
                    while (true)
                    {
                        if (intnode.ParentNode != null && intnode.ParentNode.NodeType == XmlNodeType.EntityReference)
                        {
                            if (intnode.ParentNode.PreviousSibling != null)
                            {
                                n = intnode.ParentNode.PreviousSibling;
                                break;
                            }
                            else
                            {
                                intnode = intnode.ParentNode;
                                if (intnode == null)
                                    break;
                            }
                        }
                        else
                            break;
                    }
                }

                if (n == null)
                    break;
                while (n.NodeType == XmlNodeType.EntityReference)
                {
                    n = n.LastChild;
                }
            }
            return retnode;
        }