Cómo obtener texto entre dos etiquetas div con algún atributo de clase con HTMLagility

c# dom html html-agility-pack selector

Pregunta

Quiero obtener algo de texto de dos div html del archivo HTML. Después de algunas búsquedas decidí usar HTMLAgility Pack para hacer esto. Escribí este código:

    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(result);
    HtmlNode node = doc.DocumentNode.SelectSingleNode("//*div[@class='item']"); 
    string value = node.InnerText; 

'resultado' es mi contenido del archivo. Pero obtengo esta excepción: 'La expresión debe evaluar a un conjunto de nodos'

Y esto es parte del contenido del archivo mt:

<div class="Clear" style="height:15px;"></div>
<div class='Container Select' id="Container_1">
<div class='Item'><div class='Part Lable'>موضوع : </div><div class='Part ...

Respuesta popular

¿Ha intentado usar XPath, por ejemplo, si quisiera encontrar un nodo seleccionado en mi ejemplo, haría lo siguiente?

string xpath = null;
XmlNode configNode = configDom.DocumentElement;
// collect selected nodes in node list
XmlNodeList nodeList =
configNode.SelectNodes(@"//*[@status='checked']");

En tu caso harías lo siguiente.

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(result);
HtmlNode node = doc.DocumentNode.SelectSingleNode("//*/div[@class='item']"); 
string value = node.InnerText; 


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow