Example #1
0
        private static void CopyChildNodes(IHtmlElement element, IFreeElement freeElement)
        {
            foreach (var node in element.Nodes().Reverse())
            {
                var freeNode = freeElement.Factory.MakeCopy(node);

                freeNode.Into(freeElement, 0);
            }
        }
Example #2
0
        /// <summary>
        /// 将元素添加到容器末尾
        /// </summary>
        /// <param name="element">要插入的游离元素</param>
        /// <param name="container">要被插入的容器</param>
        /// <returns>添加后的元素</returns>
        public static IHtmlElement AppendTo(this IFreeElement element, IHtmlContainer container)
        {
            if (element == null)
            {
                throw new ArgumentNullException("element");
            }

            if (container == null)
            {
                throw new ArgumentNullException("container");
            }


            return(element.InsertTo(container, container.Nodes().Count()));
        }
Example #3
0
        /// <summary>
        /// 将元素插入到指定位置
        /// </summary>
        /// <param name="element">要插入的游离元素</param>
        /// <param name="container">要被插入的容器</param>
        /// <param name="index">插入位置</param>
        /// <returns>插入后的元素</returns>
        public static IHtmlElement InsertTo(this IFreeElement element, IHtmlContainer container, int index)
        {
            if (element == null)
            {
                throw new ArgumentNullException("element");
            }

            if (container == null)
            {
                throw new ArgumentNullException("container");
            }


            lock (container.SyncRoot)
            {
                if (!container.Document.Equals(element.Document))
                {
                    throw new InvalidOperationException();
                }

                return((IHtmlElement)element.Into(container, index));
            }
        }