HTML Agility Pack-Analyse

asp.net-mvc html html-agility-pack

Frage

Ich bin sehr neu in HTML Agility Pack. Ich versuche eine Dokumentation zu finden, habe aber einige Probleme.

Ich habe den folgenden Code:

<div class="person">
<a href="blah1.html">Person 1</a>
</div>
<div class="person">
<a href="blah2.html">Person 2</a>
</div>
<div class="person">
<a href="blah3.html">Person 3</a>
</div>
<div class="person">
<a href="blah4.html">Person 4</a>
</div>

Wie kann ich mit dem Parser nur Links innerhalb eines divs mit einer Klassenperson erfassen?

Vielen Dank!

Akzeptierte Antwort

Mit Html Agility Pack (verfügbar in NuGet):

HtmlDocument html = new HtmlDocument();
html.Load(path_to_html); // or html.LoadHtml(html_string)           
var links = html.DocumentNode.SelectNodes("//div[@class='person']/a")
                .Select(n => n.GetAttributeValue("href", null));

Kehrt zurück:

"blah1.html"
"blah2.html"
"blah3.html"
"blah4.html"

Beliebte Antwort

Der folgende XPath entspricht Ihrer Beschreibung:

//div[@class='person']/a/@href

Es gibt die href Attribute der ersten a Elemente zurück, die sich direkt unter einem div Element befinden, mit dem class , das der person .

Wenn Sie mit den jQuery-Style-Selektoren vertrauter sind , sollten Sie sich CsQuery anstelle des HTML-Agility-Packs ansehen.




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum