Méthode HtmlAgilityPack pour renvoyer la valeur d'une ligne dans une table contenant des données de colonne

c# html-agility-pack

Question

Je souhaite utiliser le pack d'agilité HTML pour extraire des informations html internes en fonction de leur distance relative par rapport aux autres td d'une rangée donnée d'un tableau.

Par exemple, dans le code ci-dessous, une commande dynamique efficace prendrait les données de la première balise td en entrée et donnerait les données de la troisième balise td en sortie:

<tbody>
    <tr>
        <td>Smith</td>
        <td>Glasnevin</td>
        <td>11</td>
        <td>6.0</td>
    </tr>
    <tr>
        <td>Harty</td>
        <td>Blackrock</td>
        <td>11</td>
        <td>6.0</td>
    </tr>
    <tr>
        <td>Power</td>
        <td>Salthill</td>
        <td>0</td>
        <td>5.8</td>
    </tr>
</tbody>

Donc, si je donne "Smith" en tant qu'entrée, j'aimerais obtenir "11" en tant que sortie ou si je donne "Puissance" en tant qu'entrée, j'aurai un "0".

Réponse acceptée

Voici un exemple :

HtmlDocument doc = new HtmlDocument();
//load your HTML to `doc`
var result = doc.DocumentNode
                .SelectSingleNode("//tr[td[1]='Power']/td[3]")
                .InnerText;
//at this point `result` hold value of 0

Le mot XPath signifie que le noeud <tr> ayant le premier noeud enfant <td> est égal à "Power" , puis récupère le troisième <td> partir du <tr> susmentionné.




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