tabella di analisi del pacchetto agility html

c# html-agility-pack

Domanda

Ho una tabella come questa:

<table border="0" cellpadding="0" cellspacing="0" id="table2">
    <tr>
        <th>Name
        </th>
        <th>Age
        </th>
    </tr>
        <tr>
        <td>Mario
        </td>
        <th>Age: 78
        </td>
    </tr>
            <tr>
        <td>Jane
        </td>
        <td>Age: 67
        </td>
    </tr>
            <tr>
        <td>James
        </td>
        <th>Age: 92
        </td>
    </tr>
</table>

e sto usando il pacchetto di agility html per analizzarlo. Ho provato questo codice ma non sta restituendo i risultati previsti: Ecco il codice:

<table border="0" cellpadding="0" cellspacing="0" id="table2">
    <tr>
        <th>Name
        </th>
        <th>Age
        </th>
    </tr>
        <tr>
        <td>Mario
        </td>
        <th>Age: 78
        </td>
    </tr>
            <tr>
        <td>Jane
        </td>
        <td>Age: 67
        </td>
    </tr>
            <tr>
        <td>James
        </td>
        <th>Age: 92
        </td>
    </tr>
</table>

Sto ottenendo ogni colonna perché mi piacerebbe fare un po 'di elaborazione sui contenuti restituiti.

Che cosa sto facendo di sbagliato?

Risposta popolare

Puoi afferrare il contenuto della cella dal tuo ciclo foreach esterno:

foreach (HtmlNode td in doc.DocumentNode.SelectNodes("//table[@id='table2']//tr//td"))  
{  
    Response.Write(td.InnerText);   
}  

Inoltre, consiglierei di tagliare e "de-abilitare il testo interno per assicurarti che sia pulito:

foreach (HtmlNode td in doc.DocumentNode.SelectNodes("//table[@id='table2']//tr//td"))  
{  
    Response.Write(td.InnerText);   
}  

Nella tua origine le celle di [Età: 78] e [Età: 92] hanno un tag <th> all'inizio invece di <td>




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é