【问题标题】:C# bind html document with tree viewC# 将 html 文档与树视图绑定
【发布时间】:2013-12-13 01:15:48
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多