/// <summary> /// Clone and entitize an HtmlNode. This will affect attribute values and nodes' text. It will also entitize all child nodes. /// </summary> /// <param name="node">The node to entitize.</param> /// <returns>An entitized cloned node.</returns> public static HtmlNode Entitize(HtmlNode node) { if (node == null) { throw new ArgumentNullException("node"); } HtmlNode result = node.CloneNode(true); if (result.HasAttributes) Entitize(result.Attributes); if (result.HasChildNodes) { Entitize(result.ChildNodes); } else { if (result.NodeType == HtmlNodeType.Text) { ((HtmlTextNode) result).Text = Entitize(((HtmlTextNode) result).Text, true, true); } } return result; }