如何组织<li>和<ul>在c#中的treeView上显示

时间:2017-09-02 06:15:54

标签: c# treeview html-agility-pack

我有这个HTML代码:

&#13;
&#13;
<div id="categories">
<ul>
<li id="catn4LsQd93KqA" position="0" ><a href="#" class="">news</a><ul>
                <li id="cat2JgdgXE_pc" position="0" ><a href="#" class="">news1</a></li>
                 <li id="cat2JkdsXE" position="1" ><a href="#" class="">news2</a></li>
</ul></li>
<li id="catIrTZ3KxgBdQ" position="1" ><a href="#" class="">movie</a><ul>
		<li id="cat2JkSIiXE_dc" position="0" ><a href="#" class="">movie1</a></li>
		<li id="catYDEJxdLpWtQ" position="1" ><a href="#" class="">movie2</a></li>
		<li id="catsUaLR6HD-bY" position="2" ><a href="#" class="">movie3</a></li>
	</ul></li></ul></div>
&#13;
&#13;
&#13;

这些代码从服务器更改并添加新的catagoris(li)或(ul)

我想用htmlagilitypack在C#treeView中显示这些代码,还是有什么方法吗?

1 个答案:

答案 0 :(得分:0)

您需要从html列表代码创建树视图吗?

尝试这样的事情

rootNode是类别

void LoadTree(TreeNode treeNode, HtmlAgilityPack.HtmlNode rootNode)
        {
            foreach (var node in rootNode.ChildNodes)
            {
                TreeNode n = new TreeNode(node.InnerText);
                node.Attributes.Select(a => a.Name + "=" + a.Value)
                               .ToList()
                               .ForEach(x => n.Nodes.Add(x));
                treeNode.Nodes.Add(n);

                LoadTree(n, node);
            }
        }