XPath para elementos con contenido dentro?

c# html html-agility-pack xml xpath

Pregunta

Estoy usando HtmlAgilityPack y tengo la siguiente situación:

<table class='table-main odds '>   
   <tbody>
      <tr>..</tr>
      <tr>..</tr>
      <tr>..</tr>
      <tr></tr>
      <tr></tr>
  </tbody>
</table>          

Como puede ver, solo tres tr tienen contenido en su interior, así que quiero que en el resultado final solo estén disponibles los tres primeros tr . En realidad mi código devuelve todo el tr :

 HtmlNode oddsTable = doc.DocumentNode
          .SelectSingleNode("//table[starts-with(@class, 'table-main')]");
 HtmlNodeCollection rows = oddsTable.SelectNodes("tbody//tr");

¿Cómo puedo lograr eso usando xpath ?

Gracias por cualquier ayuda y explicación.

Respuesta aceptada

Depende de lo que quieras decir por contenido :

  • Cualquier contenido : //tr[node()]
  • Contenido del elemento : //tr[*]
  • Contenido del texto : //tr[text()]
  • Contenido sin espacios en blanco : //tr[normalize-space()]


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é