C#用树视图绑定html文档

时间:2013-11-27 11:52:36

标签: c# html data-binding treeview hierarchical-data

我通过更改树视图来制作这个html编辑器(使用HtmlAgilityPack) - 必须与加载的文档并行进行更改,

将htmlNode与treeNode关联起来的最佳方法是什么(我认为它与XmlNode完全相同)。我有一些想法,但我想知道是否有一些好的解决方案。

1 个答案:

答案 0 :(得分:2)

至于没有人提供帮助,我发布了这样做的方式,但是,如果有人会提供更好的解决方案,我会接受它。

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