public XmlInnerTextNode([NotNull] XmlTextNode textNode, [NotNull] XElement element)
 {
     TextNode = textNode;
     _element = element;
 }
        protected virtual ITextNode Parse([CanBeNull] ITextNode parent, [NotNull] XElement element)
        {
            var childNodes = (ICollection<ITextNode>)parent?.ChildNodes;

            var treeNode = new XmlTextNode(this, element);
            childNodes?.Add(treeNode);

            var attributes = (ICollection<ITextNode>)treeNode.Attributes;

            foreach (var attribute in element.Attributes())
            {
                if (attribute.Name.LocalName == "xmlns")
                {
                    continue;
                }

                var attributeTreeNode = new XmlTextNode(this, attribute);
                attributes.Add(attributeTreeNode);
            }

            foreach (var child in element.Elements())
            {
                Parse(treeNode, child);
            }

            return treeNode;
        }