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); } }
/// <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())); }
/// <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)); } }