Esempio n. 1
0
        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);
        }