Ottieni il testo all'interno di un intervallo

c# html-agility-pack

Domanda

Ho una pagina HTML con questo codice

<span class="titoloSerie" style="font-size: 40px; color: #000000;">SHOW NAME</span>

Voglio ottenere "SHOW NAME". Ho provato il seguente codice, ma non ha funzionato:

var div = doc.DocumentNode.SelectNodes("//span[@class='titoloSerie']");

Il compilatore interrompe dicendo "div è nullo" (ok, non ho gestito l'eccezione ma lo so).

Il seguente codice è:

List<string> pageTitles = new List<string>();
foreach (var title in div)
{
    pageTitles.Add(title.InnerText);
}

Il compilatore si chiude nel ciclo foreach su "div" dicendo che è null.

Risposta accettata

Prova questo:

var rigaStagioneSerie = document.DocumentNode.SelectNodes("//td[@class='rigaStagioneSerie']");
List<string> pageTitles = new List<string>();

foreach (var title in rigaStagioneSerie)
{
    if (title.ChildNodes.Count == 1)
    {
        pageTitles.Add(title.InnerText.Replace("\n", string.Empty).Replace("\t", string.Empty));
    }

}

var titoloSerie = document.DocumentNode.SelectNodes("//span[@class='titoloSerie']");

foreach (var title in titoloSerie)
{
    pageTitles.Add(title.InnerText);
}

Provalo qui: .NET Fiddle



Related

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é