C # HTMLAgilityPack compte les éléments tr de la première table

c# html-agility-pack

Question

J'utilise le HTMLAgilityPack plusieurs fois. Mais je n'ai pas de solution pour mon problème suivant:

<table class="tableClass">
  <thead>...</thead>
  <tbody>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
  </tbody>
</table>

<table class="tableClass">
  <thead>...</thead>
  <tbody>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
  </tbody>
</table>

Donc, c'est le code HTML.

Je peux trouver le premier "tableClass" par ceci:

<table class="tableClass">
  <thead>...</thead>
  <tbody>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
  </tbody>
</table>

<table class="tableClass">
  <thead>...</thead>
  <tbody>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
  </tbody>
</table>

Ensuite, je veux compter les éléments dans le premier tableau.

<table class="tableClass">
  <thead>...</thead>
  <tbody>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
  </tbody>
</table>

<table class="tableClass">
  <thead>...</thead>
  <tbody>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
  </tbody>
</table>

Le résultat est toujours 8 au lieu de 4.

S'il vous plaît aider: /

Merci beaucoup.

Réponse acceptée

1) N'utilisez pas // dans votre XPath si vous souhaitez obtenir des sous-nœuds d'un nœud spécifique. utilisez .// place. ne faites pas précéder un sous-noeud dans votre XPath avec // :

var trNodes=node.SelectNodes(".//tr");

Réponse populaire

Votre requête pour les balises tr n'est pas correcte. Vous la démarrez avec une double barre oblique, ce qui signifie que la requête sera exécutée sur tout le document. Si vous devez interroger des sous-nœuds, vous devez supprimer cette double barre oblique de votre requête.

node.SelectNodes("tbody//tr")

En outre, vous pouvez obtenir le nombre dont vous avez besoin en une seule ligne de code.

node.SelectNodes("tbody//tr")



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