senin girdi dizesi sen davranabilirsiniz geçerli XHTML bir XmlDocument yüklemek, xml gibidir, ve XPath büyü yapmak :) Ama her zaman böyle değil ise.
public List<Uri> FetchLinksFromSource(string htmlSource)
{
List<Uri> links = new List<Uri>();
string regexImgSrc = @"<img[^>]*?src\s*=\s*[""']?([^'"" >]+?)[ '""][^>]*?>";
MatchCollection matchesImgSrc = Regex.Matches(htmlSource, regexImgSrc, RegexOptions.IgnoreCase | RegexOptions.Singleline);
foreach (Match m in matchesImgSrc)
{
string href = m.Groups[1].Value;
links.Add(new Uri(href));
}
return links;
}
Ve bu gibi kullanabilirsiniz:
Aksi takdirde HtmlSource tüm resim bağlantılarını dönecek, bu işlevi deneyebilirsiniz
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.example.com");
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
using(StreamReader sr = new StreamReader(response.GetResponseStream()))
{
List<Uri> links = FetchLinksFromSource(sr.ReadToEnd());
}
}
Bunun için, başımı kendi regeximin üzerinde beceriyordum! –
'([^ '" ">] +?)', Href boşluk içeriyorsa çalışmıyor! – Ahmad
Kullanarak (StreamReader sr = yeni StreamReader (response.GetResponseStream()) satırında ek bir kapatma ayracı eksik – Kaitlyn