HtmlAgiltyPack analizza l'HTML e ricava valore dal tag span e dal nome della classe

asp.net asp.net-mvc c# html html-agility-pack

Domanda

Ho un codice HTML scaricato tramite il mio client di richiesta web. E da tutto il codice HTML voglio analizzare solo questa parte dell'HTML:

<span class="sku">
<span class="fb">SKU                            :</span>118880101
</span>

Sto usando HTML Agilty Pack per recuperare questo valore: 118880101

E ho scritto qualcosa del genere:

 HtmlDocument htmlDoc = new HtmlDocument();
 htmlDoc.LoadHtml(html);
 return htmlDoc.DocumentNode.SelectNodes("//span[@class='sku']").ElementAt(0).InnerText;

E questo mi restituisce questo valore dall'HTML:

SKU                            :118880101

Letteralmente come questo, spazi inclusi ... Come posso risolvere questa logica con HTML Agilty Pack in modo che io possa solo rimuovere questo valore 118880101?

Qualcuno mi può aiutare?

Modifica: una regex come questa farebbe la cosa:

Substring(skuRaw.LastIndexOf(':') + 1);

il che significherebbe prendere tutto dopo ":" sign in string che ricevo ... Ma non sono sicuro se è sicuro usare regex come questo?

Risposta accettata

Prova questo

     HtmlDocument htmlDoc = new HtmlDocument();
     htmlDoc.LoadHtml(html);
     var innerText=htmlDoc.DocumentNode.SelectNodes("//span[@class='sku']")
                          .ElementAt(0).InnerText;
     return innerText.replace(/\D/g,'');

se vuoi usare solo il pacchetto di Agilità Html, prova questo

       var child = htmlDoc.DocumentNode.SelectNodes("//span[@class='fb']")
                           .FirstOrDefault();
        if (child != null)
        {
            var parent = child.ParentNode;
            parent.RemoveChild(child);
            var innerText = parent.InnerText;              
        }


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é