Je souhaite analyser la date, le texte du lien et le lien href de la table class = 'nice' sur la page Web http://cslh.cz/delegace.html?id_season=2013
J'ai créé l'objet DelegationLink
public class DelegationLink
{
public string date { get; set; }
public string link { get; set; }
public string anchor { get; set; }
}
et utilisé avec LINQ pour créer une liste de délégation
var parsedValues =
from table in htmlDoc.DocumentNode.SelectNodes("//table[@class='nice']")
from date in table.SelectNodes("tr//td")
from link in table.SelectNodes("tr//td//a")
.Where(x => x.Attributes.Contains("href"))
select new DelegationLink
{
date = date.InnerText,
link = link.Attributes["href"].Value,
anchortext = link.InnerText,
};
return parsedValues.ToList();
qui prend une colonne de date par un et le combine avec une colonne de lien dans chaque ligne, mais je veux simplement prendre chaque ligne de la table et obtenir la date, href et hreftext à partir de cette ligne. Je suis nouveau sur LINQ et j'ai utilisé Google pendant 4 heures sans aucun effet. Merci pour l'aide.
Eh bien, c'est plutôt facile, il vous suffit de sélectionner les tr
dans les SelectNodes
fonction SelectNodes
et d'ajuster légèrement votre code. Quelque chose comme ça.
var parsedValues = htmlDoc.DocumentNode.SelectNodes("//table[@class='nice']/tr").Skip(1)
.Select(r =>
{
var linkNode = r.SelectSingleNode(".//a");
return new DelegationLink()
{
date = r.SelectSingleNode(".//td").InnerText,
link = linkNode.GetAttributeValue("href",""),
anchor = linkNode.InnerText,
};
}
);
return parsedValues.ToList();