Obtén texto después del lapso con una clase con Html Agility Pack

c# html html-agility-pack

Pregunta

Tengo esta estructura

   <span class="glyphicon glyphicon-user"></span>
                         123                       <br>

Quiero obtener "123"

este código se pone entre la etiqueta si existe

var username = document.DocumentNode.SelectSingleNode("//p[@class='glyphicon-user']");
//Response.Write(username.InnerText);

pero quiero obtener "123"

Respuesta aceptada

Esta es una forma posible, basada únicamente en el sinppet HTML publicado hasta ahora:

var query = "//span[@class='glyphicon glyphicon-user']/following-sibling::text()[1]";
var username = document.DocumentNode.SelectSingleNode(query);
Console.WriteLine(username.InnerText.Trim());

Básicamente, el XPath busca el span con cierto valor de atributo de class y luego devuelve el nodo de texto más cercano ubicado después del span . Puede haber una mejor manera dependiendo de su necesidad exacta y la estructura HTML real.

dotnetfiddle demo

salida:

123


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é