Come ottenere elemento per classe in HtmlAgilityPack

asp.net c# html-agility-pack

Domanda

Salve rendendo HttpWebResponse e ottenendo HtmlPage con tutti i dati di cui ho bisogno per la tabella di esempio con informazioni sulla data che ho bisogno di salvarli in elenco di matrice e salvarlo in file xml

Esempio di pagina HTML

<table>
<tr>
<td class="padding5 sorting_1">
<span class="DateHover">01.03.14</span>
</td>
<td class="padding5 sorting_1">
<span class="DateHover" >10.03.14</span>
</td>
</tr>
</table>

il mio codice non funziona utilizzando HtmlAgilityPack

 private static string GetDataByIClass(string HtmlIn, string ClassToGet)
    {
        HtmlAgilityPack.HtmlDocument DocToParse = new HtmlAgilityPack.HtmlDocument();
        DocToParse.LoadHtml(HtmlIn);
        HtmlAgilityPack.HtmlNode InputNode = DocToParse.GetElementbyId(ClassToGet);//here is the problem i dont have method DocToParse.GetElementbyClass
        if (InputNode != null)
        {
            if (InputNode.Attributes["value"].Value != null)
            {
                return InputNode.Attributes["value"].Value;
            }
        }

        return null;
    }

Sembrare ho bisogno di leggere questi dati per ottenere la data 01.03.14 e 10.02.14 per essere in grado di salvare questo alla lista di matrice (e quindi al file xml)

Qualche idea su come posso ottenere queste date (01.03.14 e 10.02.14)?

Risposta accettata

Html Agility Pack ha il supporto per XPATH, quindi puoi fare qualcosa di simile a questo:

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//span[@class='" + ClassToGet + "']"))
{
    string value = node.InnerText;
    // etc...
}

Ciò significa: ottenere tutti gli elementi SPAN dalla parte superiore del documento (first /), in modo ricorsivo (secondo /) che hanno un determinato attributo CLASS. Quindi per ogni elemento, ottieni il testo interno.



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é