htmlagilitypack analysiert Links und inneren Text

c# html-agility-pack

Frage

Ich bin neu im htmlagilitypack, ich versuche einen Weg zu finden, wie ich die Links von einem HTML-Setup so bekommen kann

<div class="std"><div style="border-right: 1px solid #CCCCCC; float: left; height: 590px; width: 190px;"><div style="background-color: #eae3db; padding: 8px 0 8px  20px; font-weight: bold; font-size: 13px;">test</div>
    <div>
    <div style="font-weight: bold; margin: 5px 0 -6px;">FEATURED</div>
    <span class="widget widget-category-link"><a href="http://www.href1.com"><span>cat1</span></a></span>
     <span class="widget widget-category-link"><a href="http://www.href1.com"><span>cat2</span></a></span>
</div></div>

Ich habe in c # noch keinen Code geschrieben, aber ich habe mich gefragt, ob irgendjemand raten könnte, auf welche Tags die Links und der innere Text zeigen sollen, wenn keine HTML-ID vorhanden ist. Vielen Dank

Beliebte Antwort

Wenn Sie mit XPATH vertraut sind, können Sie durch die Elemente und Attribute von html navigieren, um zu bekommen, was Sie wollen. Um jedes href in das oben genannte zu bekommen, könntest du folgenden Code schreiben:

 const string xpath = "/div//span/a";

 //WebPage below is a string that contains the text of your example
 HtmlNode html = HtmlNode.CreateNode(WebPage);
 //The following gives you a node collection of your two <a> elements
 HtmlNodeCollection items = html.SelectNodes(xpath);
 foreach (HtmlNode a in items)
 {    
      if (a.Attributes.Contains("href"))
      //Get your value here
      {
           yourValue = a.Attributes["href"].Value
      }
 }

Hinweis: Ich habe diesen Code nicht ausgeführt oder getestet



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