C#如何将HTML文档与树形视图绑定?

3
我正在制作这个html编辑器(使用HtmlAgilityPack),因此对树视图进行更改-更改必须与加载的文档并行进行。
最好的方法是将htmlNode与treeNode关联(我认为与XmlNode非常相似)。我有一些想法,但我想知道是否有更好的解决方案。
1个回答

3

由于目前还没有人提供帮助,我分享一下自己的做法。但是如果有人能够提供更好的解决方案,我将会接受。

    public void bind(HtmlNode htmlN, TreeNode treeN)
    {

        StringBuilder result = new StringBuilder();
        switch (htmlN.NodeType)
        {
            case HtmlNodeType.Comment :
                result.Append(htmlN.InnerText);
                break;
            case HtmlNodeType.Document :
                result.Append("root");
                break;
            case HtmlNodeType.Element :
                result.Append('<').Append(htmlN.Name).Append('>');
                break;
            case HtmlNodeType.Text :
                result.Append(htmlN.InnerText );
                break;
            default:
                result.Append("undefined element");
                break;
        }

        treeN.Text = result.ToString(); 
        treeN.Name = htmlN.Name;
        treeN.Tag = htmlN;

        TreeNode newTN;

        foreach ( HtmlNode node in htmlN.ChildNodes ){
            if ( node.NodeType == HtmlNodeType.Element ||  node.InnerText.Trim().Length > 0 ){
                newTN = new TreeNode();
                treeN.Nodes.Add(newTN);
                bind(node, newTN);
            }
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接