【发布时间】:2013-12-13 01:15:48
【问题描述】:
我正在通过更改树视图来制作这个 html 编辑器(使用 HtmlAgilityPack) - 更改必须与加载的文档并行进行,
将 htmlNode 与 treeNode 关联的最佳方法是什么(我认为与 XmlNode 完全一样)。我有一些想法,但我想知道是否有一些好的解决方案。
【问题讨论】:
标签: c# html data-binding treeview hierarchical-data
我正在通过更改树视图来制作这个 html 编辑器(使用 HtmlAgilityPack) - 更改必须与加载的文档并行进行,
将 htmlNode 与 treeNode 关联的最佳方法是什么(我认为与 XmlNode 完全一样)。我有一些想法,但我想知道是否有一些好的解决方案。
【问题讨论】:
标签: c# html data-binding treeview hierarchical-data
到目前为止,没有人提供帮助,我发布了我这样做的方式,但是,如果有人能提供更好的解决方案,我会接受它。
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);
}
}
}
【讨论】: