XPath pour les éléments avec du contenu à l'intérieur?

c# html html-agility-pack xml xpath

Question

J'utilise HtmlAgilityPack et j'ai la situation suivante:

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

comme vous pouvez voir que seulement trois tr ont un contenu, je veux donc que dans le résultat final, seuls les trois premiers tr En fait, mon code retourne tous les tr :

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

comment puis-je atteindre cela en utilisant xpath ?

Merci pour toute aide et explication.

Réponse acceptée

Cela dépend de ce que vous entendez par contenu :

  • N'importe quel contenu : //tr[node()]
  • Contenu de l'élément : //tr[*]
  • Contenu du texte : //tr[text()]
  • Contenu non blanc : //tr[normalize-space()]


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi