Even de method aanpassen om list of class 'Team' te krijgen dan staan de teams met naam en url dus in een class en zijn gekoppeld:
[CPP]public class TeamDataService : DownloadService
{
private const string BaseUrl = "http://www.wakanutgeve.nl";
public async Task<List<Team>> GetTeamsAsync()
{
var url = string.Format("{0}/180/jeugd/", BaseUrl);
Debug.WriteLine("GetTeamsAsync");
Debug.WriteLine("\tfrom url:{0}", url);
var source = await DownloadPageSourceAsync(url);
var doc = new HtmlDocument();
doc.LoadHtml(source);
var teams = new List<Team>();
var teamNodes = doc.DocumentNode.SelectNodes("id('Tekstpagina')//a");
foreach (var optionNode in teamNodes)
{
var teamName = optionNode.InnerText.Trim();
if (teamName.Length == 2) //teams like A1, C2, F3
{
var teamUrlPart = optionNode.GetAttributeValue("href", string.Empty);
if (teamUrlPart != string.Empty)
{
teams.Add(new Team(teamName, BaseUrl + teamUrlPart));
}
}
else
{
Debug.WriteLine("skipped:{0}", teamName);
}
}
Debug.WriteLine("parsed {0} teams", teams.Count);
foreach (var team in teams)
Debug.WriteLine("\t{0}", team);
return teams;
}
}[/CPP]
Team Class:
[CPP]public class Team
{
public Team(string name, string url)
{
Name = name;
Url = url;
}
public string Name { get; set; }
public string Url { get; set; }
//more team properties like players and what not
public override string ToString()
{
return string.Format("{0} [{1}]", Name, Url);
}
}[/CPP]
Debug Output:
Code:
GetTeamsAsync
from url:http://www.wakanutgeve.nl/180/jeugd/
skipped:Voorlopige spelersindeling jeugd 2013/2014
skipped:Bambino's
skipped:ZSV-ers in Oranje
skipped:Links
skipped:Organisatie Jeugd
parsed 23 teams
A1 [http://www.wakanutgeve.nl/284/zsv-a1/]
A2 [http://www.wakanutgeve.nl/285/zsv-a2/]
B1 [http://www.wakanutgeve.nl/288/zsv-b1/]
B2 [http://www.wakanutgeve.nl/289/zsv-b2/]
B3 [http://www.wakanutgeve.nl/290/zsv-b3/]
C1 [http://www.wakanutgeve.nl/292/zsv-c1/]
C2 [http://www.wakanutgeve.nl/293/zsv-c2/]
C3 [http://www.wakanutgeve.nl/294/zsv-c3/]
C4 [http://www.wakanutgeve.nl/763/zsv-c4/]
C5 [http://www.wakanutgeve.nl/755/zsv-c5/]
D1 [http://www.wakanutgeve.nl/297/zsv-d1/]
D2 [http://www.wakanutgeve.nl/298/zsv-d2/]
D3 [http://www.wakanutgeve.nl/299/zsv-d3/]
E1 [http://www.wakanutgeve.nl/302/zsv-e1/]
E2 [http://www.wakanutgeve.nl/303/zsv-e2/]
E3 [http://www.wakanutgeve.nl/305/zsv-e3/]
E4 [http://www.wakanutgeve.nl/306/zsv-e4/]
E5 [http://www.wakanutgeve.nl/307/zsv-e5/]
E6 [http://www.wakanutgeve.nl/308/zsv-e6/]
F1 [http://www.wakanutgeve.nl/311/zsv-f1/]
F2 [http://www.wakanutgeve.nl/312/zsv-f2/]
F3 [http://www.wakanutgeve.nl/313/zsv-f3/]
F4 [http://www.wakanutgeve.nl/315/zsv-f4/]