将URL字符串解析为树层次结构

时间:2009-04-02 22:04:21

标签: .net sql treeview

我有一个标题表,其中包含一个网页列表。每个记录都有一个页面URL字段,我希望将其解析为层次结构(TreeView)。我不确定最好的解决方法,我在解决问题时遇到了问题。

以下是URLS的示例:

/file1.aspx
/file2.aspx
/aFolder/file.aspx
/aFolder/file2.aspx
/bfolder/file.aspx
/bFolder/cFolder/file.aspx

我想将这种类型的列表放入文件资源管理器样式树视图中,您可以展开文件夹,然后在最后选择文件。

这样的东西
--Root
  |
  +-aFolder
  |   - aFolderFile1.aspx
  |   - aFolderFile2.aspx
  +-bFolder
      +-cFolder
      |    -cFolderFile1.aspx
      -bFolderFile1.aspx

真正的数据显然每个都有更多的子文件夹和文件。

我正在寻找的是一些代码,无论是.NET还是SQL来解析我的字符串。我曾尝试使用一些使用WITHUNION ALL的SQL,但我无法让它为我工作。

为了将其绑定到TreeView,数据源需要具有父字段才能关联节点。因此,例如文件cFolderFile1.aspx的父级是cFolder,而cFolder的父级是bFolder,依此类推....

希望我已经包含了足够的信息。如果没有,请告诉我,我将编辑该帖子。

2 个答案:

答案 0 :(得分:0)

我很确定您可以将SqlDataSource直接绑定到.NET树视图。这是两个涵盖该论坛的论坛:

Building a Treeview From a SqlDataSource

Dynamic treeview

答案 1 :(得分:0)

感谢大家的建议。这些链接似乎都不是我想要的,所以我最终将一些东西放在一起。

有一堆代码,但总的来说,我将URL列表读入一个具有一些额外属性的通用列表,并使用一些正则表达式语句来解析路径。

因为URL的列表没有任何类型的父ID /子ID,所以我使用了FIND函数并得到了我需要的部分。