private HtmlNode IterateIDOMElement(IDomObject element, HtmlNode parent) { HtmlNode current; if (parent == null) //root节点 { current = HtmlNode.CreateRoot(); } else { if (element.NodeName == "#text") { current = HtmlNode.CreatePlainTag(element.ToString()); } else { var attrs = new StringBuilder(); string link = null; if (element.HasAttributes) { element.Attributes.ToList().ForEach(x => attrs.AppendFormat("{0}='{1}' ", x.Key, x.Value)); var href = element.Attributes.FirstOrDefault(x => x.Key.ToLower() == "href"); link = href.Value; } current = HtmlNode.Create(attrs.ToString(), NameToTagType(element.NodeName)); current.link = link; } parent.AddChild(current); } //遍历子树 if (element.HasChildren) { for (var i = 0; i < element.ChildNodes.Count; i++) { IterateIDOMElement(element[i], current); } } return(current); }