Selección de texto interno utilizando HtmlAgilityPack

c# html html-agility-pack

Pregunta

Estoy tratando de extraer algún texto interno usando HtmlAgilityPack. Aquí está el HTML de interés:

<select name="Archives" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;Archives\&#39;,\&#39;\&#39;)&#39;, 0)" id="Archives" style="width:200px;">
    <option selected="selected" value="Dashboard_Jul-2012">Dashboard_Jul-2012</option>
    <option value="Dashboard_Jun-2012">Dashboard_Jun-2012</option>
</select>

Estoy usando:

string output = htmlwriter.InnerWriter.ToString()
var doc = new HtmlDocument();
doc.LoadHtml(output);
string inner = doc.DocumentNode.SelectSingleNode("//option[@selected='selected']").InnerText;

Pero todo lo que estoy consiguiendo es la cadena vacía.

Cualquier consejo es apreciado.

Saludos.

Respuesta aceptada

Por defecto, HTMLAgilityPack deja las etiquetas de opciones vacías (puede ver la razón del autor para esto en HtmlAgilityPack - ¿Se cierra <form> por alguna razón? ). Para solucionarlo, agregue esta línea antes de seleccionar los nodos:

HtmlNode.ElementsFlags.Remove("option");


Related

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é