原来发在vb.net版,因为东西是用那工具做的,没人帮我解答,不知道是不是没说清楚 :(我是做类似网络蜘蛛的东西,所以一网页的链接的获取的完全性很重要,我现在碰到的问题是,像那些相对链接没法获取,而且我发现相对链接也有好几种形式的,一种是<a href="./../Article/2004/07/29/321.html">  ,有的<a href="news.php?id=2700"  target="_blank">形式,不知道还有没有别的形式,我对html语言不熟的,调试时发现有相对链接的,我本来是这样做的,用正则表达式先将页面源代码中<a href……>的字符串提取,再<a href……>中的http://……的网址格式的网址提取,这样做就把相对链接弄丢了,不知道怎么做即能把相对链接提出又能将它转为绝对链接???急~~~没剩几天就要答辩了,拜托了~~~~~~~~~~~~~~~~~

解决方案 »

  1.   

    用Uri来完成相对地址到绝对地址的转换,例如:
    Uri siteUri = new Uri("http://www.microsoft.com/Test/Test2/");
    Uri site2 = new Uri(siteUri, "../abc.html");
    Console.WriteLine(site2.ToString());
    输出:
    http://www.microsoft.com/Test/abc.html
      

  2.   

    谢谢 fancyf(凡瑞)vb.net里应该也有这个功能的吧,我对vb.net中的类太不熟了,非常感谢
      

  3.   

    当然有了
    .NET的类库不分语言的,C#和VB.NET都能调用,变变语法就可以了dim siteUri as new Uri("http://www.microsoft.com/Test/Test2/")
    dim site2 as new Uri(siteUri, "../abc.html")
    Console.WriteLine(site2.ToString())
    结果同上
      

  4.   

    真后悔今天下午没看帖子,我还折腾了一下午,还想用很土的方法用字符串concat连接,搞了半天又出现毛病,谢谢哈~~~
      

  5.   

    相对链接比较好判断吧?(同样是利用正则表达式。其实一切词法分析工作都是如此)知道相对链接,直到当前页面地址,Combine函数还是很好做的。不然就参考 Path.Combine函数。
      

  6.   

    你判断<a href=""></a>中""中的值.或者href=   从=号直到空格.