HtmlAgiltyPack analiza HTML y toma valor de la etiqueta de intervalo y el nombre de clase

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

Pregunta

Tengo un HTML que descargo a través de mi cliente de solicitud de web. Y fuera de todo el HTML quiero analizar solo esta parte de HTML:

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

Estoy usando el paquete agilty de HTML para recuperar este valor: 118880101

Y he escrito algo como esto:

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

Y esto me devuelve este valor de HTML:

SKU                            :118880101

Literalmente de esta manera, espacios incluidos ... ¿Cómo puedo arreglar esta lógica con el paquete de HTML Agilty para que solo pueda sacar este valor 118880101?

¿Alguien me puede ayudar?

Edición: una expresión regular como esta haría la cosa:

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

lo que significaría tomar todo después de ": 'iniciar sesión en la cadena que recibo ... ¿Pero no estoy seguro de si es seguro usar expresiones regulares como esta?

Respuesta aceptada

Prueba esto

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

Si desea utilizar solo el paquete Html Agility, intente esto

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


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué