Metodo HtmlAgilityPack per restituire il valore da una riga in una tabella dati dati di colonna

c# html-agility-pack

Domanda

Voglio usare il pacchetto Html Agility per estrarre informazioni interne in html in base alla relativa distanza dagli altri td all'interno di una determinata riga in una tabella.

Ad esempio nel codice seguente quale sarebbe un efficiente comando dinamico che prenderebbe i dati nel primo tag td come input e darà i dati nel terzo tag td come output:

<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>

Quindi se fornisco 'Smith' come input mi piacerebbe avere '11' come output o se fornisco 'Power' come input, otterrei '0' come output.

Risposta accettata

Ecco un esempio:

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

XPath significa selezionare il nodo <tr> con il primo nodo figlio <td> uguale a "Power" , quindi ottenere il terzo <td> dal suddetto <tr> .



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché