html-agility-pack提取背景圖像

html-agility-pack xpath

如何從以下HTML中提取URL。

即。提取:

http://media.somesite.com.au/img-101x76.jpg

從:

<div class="media-img">
    <div class=" searched-img" style="background-image: url(http://media.somesite.com.au/img-101x76.jpg);"></div>
</div>

一般承認的答案

在XPath 1.0中,您可以使用substring-after()substring-before()函數的組合來提取文本的一部分。但是HAP的SelectNodes()SelectSingleNode()不能返回除節點之外的其他內容,因此這些XPath函數無濟於事。

一種可能的方法是使用XPath和HAP獲取style屬性的整個值,然後使用regex從.NET進一步處理該值,例如:

var html = @"<div class='media-img'>
    <div class=' searched-img' style='background-image: url(http://media.somesite.com.au/img-101x76.jpg);'></div>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
var div = doc.DocumentNode.SelectSingleNode("//div[contains(@class,'searched-img')]");
var url = Regex.Match(div.GetAttributeValue("style", ""), @"(?<=url\()(.*)(?=\))").Groups[1].Value;
Console.WriteLine(url);

.NET小提琴演示

輸出:

http://media.somesite.com.au/img-101x76.jpg


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因