我用正则表达式获取超连接,可是得到的连接却是“../nr/sd_001.htm”之类的连接而不是http://www.xxx.com/nr/sd.htm 有没有什么办法来解决这个问题?或者有现成的函数也行。现在知道要获取超连接的页面为http://www.xxx.com/news/list_105.htm

解决方案 »

  1.   

    看来是没人理了 自己写了一个 大家以后要用可以做一个参考                  public string AbsUrl(string url,string href)
    {
    string[] tem;
    int y=0;
    int i=0;
    int p=0;
    int q=0;
    int j=0;
    string returnstr=null;
    tem= url.Replace("http://","").Split('/');
    i= tem.Length;
    if(tem[i-1].IndexOf(".")>0 || tem[i-1]==null || tem[i-1]=="")
    {
    tem[i-1]="";
    }
    while(y>=0)
    {
    y=href.IndexOf("../",q);
    if(y>=0)
    {
    p++;
    q=y+1;
    }
    }
    for(int m=0;m<tem.Length-1-p;m++)
    {
    returnstr+=tem[m]+"/";
    }
    returnstr="http://"+returnstr+href.Replace("../","");
    return returnstr;
    }
      

  2.   

    Response.Write(Request.RawUrl())
    则是获取当前请求的原始 URL。
      

  3.   

    楼主是说去截取任意url字符串吧?
      

  4.   

    你们没明白我的意思,我的意思是比如我获取http://www.xxx.com/news/list_105.htm里边的某超连接为:“../nr/sd_001.htm”(<a href="../nr/sd_001.htm">中的内容) 并且我要再次获取超连接的页面的源码,也就是说要的是URL地址,最终要的是http://www.xxx.com/nr/sd_001.htm 然后在调用函数获取其源码