Ottieni un valore di un attributo da HtmlAgilityPack

c# html-agility-pack

Domanda

Voglio ottenere un valore di un attributo da HtmlAgilityPack. Codice html:

<link href="style.css">
<link href="anotherstyle.css">
<link href="anotherstyle2.css">
<link itemprop="thumbnailUrl" href="http://image.jpg">
<link href="anotherstyle5.css">
<link href="anotherstyle7.css">

Voglio ottenere l'ultimo attributo href.

Il mio codice c #:

<link href="style.css">
<link href="anotherstyle.css">
<link href="anotherstyle2.css">
<link itemprop="thumbnailUrl" href="http://image.jpg">
<link href="anotherstyle5.css">
<link href="anotherstyle7.css">

Ma quel codice restituisce il primo valore href.

Risposta popolare

Seguendo XPath seleziona gli elementi di link che hanno definito l'attributo href . Quindi dai link che stai selezionando l'ultimo:

var link = doc.DocumentNode.SelectNodes("//link[@href]").LastOrDefault();
// you can also check if link is not null
var href = link.Attributes["href"].Value; // "anotherstyle7.css"

Puoi anche usare last() operatore XP last()

var link = doc.DocumentNode.SelectNodes("//link[@href]").LastOrDefault();
// you can also check if link is not null
var href = link.Attributes["href"].Value; // "anotherstyle7.css"

AGGIORNAMENTO: Se vuoi ottenere l'ultimo elemento che ha sia itemprop che href , usa XPath //link[@href and @itemprop][last()] o //link[@href and @itemprop] se vuoi andare con il primo approccio.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché