小编典典

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

sql

我有一个标头表,其中包含网页列表。每个记录都有一个页面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,依此类推。

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


阅读 157

收藏
2021-04-28

共1个答案

小编典典

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

有很多代码,但是总的来说,我将URL列表读入具有一些额外属性的Generic List中,并使用了一些regex语句来解析路径。

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

2021-04-28