Estoy duplicando algunos sitios web internos con fines de copia de seguridad. A partir de ahora, básicamente, utilizo este código C#:C# Convert Relative to Absolute Links en HTML String
System.Net.WebClient client = new System.Net.WebClient();
byte[] dl = client.DownloadData(url);
Esto, básicamente, sólo descarga el html y en una matriz de bytes. Esto es lo que quiero. Sin embargo, el problema es que los enlaces dentro del html son la mayoría de las veces relativos, no absolutos.
Básicamente quiero agregar lo que sea completo http://domain.is antes del enlace relativo como para convertirlo a un enlace absoluto que redireccionará al contenido original. Básicamente estoy preocupado con href = y src =. ¿Hay alguna expresión de expresiones regulares que cubra algunos de los casos básicos?
Editar [mi intento]:
public static string RelativeToAbsoluteURLS(string text, string absoluteUrl)
{
if (String.IsNullOrEmpty(text))
{
return text;
}
String value = Regex.Replace(
text,
"<(.*?)(src|href)=\"(?!http)(.*?)\"(.*?)>",
"<$1$2=\"" + absoluteUrl + "$3\"$4>",
RegexOptions.IgnoreCase | RegexOptions.Multiline);
return value.Replace(absoluteUrl + "/", absoluteUrl);
}
duplicados de http://stackoverflow.com/questions/3836644/c-convert-relative-to-absolute-links-in-html-string/3836790 # 3836790 que preguntaste hoy! –