HTMLAgilityPack table d'analyse dans une autre cellule de table

arraylist c# html-agility-pack

Question

J'ai le tableau suivant:

<table>
    <tr><th>header1</th><th>header2</th><th>header3</th></tr>
    <tr><td>value01</td><td>value02</td><td>value03</td></tr>
    <tr><td>value11</td><td>value12</td><td>value13</td></tr>
    <tr>
        <td colspan="3">
            <table>
                <tr><td>subvalue01</td><td>subvalue02</td></tr>
            </table>
        </td>
    </tr>
</table>

J'utilise ce code pour enregistrer les valeurs de cellule de la table principale dans des valeurs de cellule ArrayList et sous-tables distinctes dans une autre classe ArrayList . Mais mon ArrayList pour les valeurs de cellules de sous-table enregistre toutes les valeurs, y compris tableau et sous-table:

<table>
    <tr><th>header1</th><th>header2</th><th>header3</th></tr>
    <tr><td>value01</td><td>value02</td><td>value03</td></tr>
    <tr><td>value11</td><td>value12</td><td>value13</td></tr>
    <tr>
        <td colspan="3">
            <table>
                <tr><td>subvalue01</td><td>subvalue02</td></tr>
            </table>
        </td>
    </tr>
</table>

Quel est le problème avec mon code?

Réponse acceptée

Je crois que ta première ligne

foreach (HtmlNode table in hdoc.DocumentNode.SelectNodes("//table"))

sélectionnera TOUTES les tables - à n’importe quel niveau (y compris les tables imbriquées).

Par: http://www.w3schools.com/XPath/xpath_syntax.asp

// Sélectionne les nœuds du document à partir du nœud actuel qui correspondent à la sélection, peu importe leur emplacement.

Alors changez votre première ligne en

foreach (HtmlNode table in hdoc.DocumentNode.SelectNodes("//table"))

Et voyez comment ça se passe.




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