html-agility-pack extrahiert ein Hintergrundbild

html-agility-pack xpath

Frage

Wie extrahiere ich die URL aus dem folgenden HTML.

dh. Extrakt:

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

von:

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

Akzeptierte Antwort

In XPath 1.0 im Allgemeinen können Sie eine Kombination aus substring-after() und substring-before() -Funktionen verwenden, um einen Teil eines Textes zu extrahieren. Aber die SelectNodes() und SelectSingleNode() HAP können nur Knoten zurückgeben, so dass diese XPath-Funktionen nicht helfen.

Ein möglicher Ansatz ist es, den gesamten Wert zu bekommen style - Attributs XPath & HAP, dann den Wert verarbeitet weiter von .NET Regex zum Beispiel:

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 Geige Demo

Ausgabe :

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


Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow