Ich habe ein paar Probleme mit meinem Code, ich versuche jeden Absatz von einer Seite zu ziehen, aber im Moment wird nur der letzte Absatz ausgewählt.
Hier ist mein Code.
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@id='body']/p"))
{
string text = node.InnerText;
lblTest2.Text = text;
}
In Ihrer Schleife nehmen Sie den aktuellen Knoten innerText und ordnen ihn dem Label zu. Sie tun dies für jeden Knoten, also sehen Sie natürlich nur den letzten - Sie behalten die vorherigen nicht bei.
Versuche dies:
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@id='body']/p"))
{
string text = node.InnerText;
lblTest2.Text += text + Environment.NewLine;
}
IMO, XPath macht keinen Spaß. Ich würde stattdessen die Verwendung der LINQ-Syntax empfehlen:
foreach (var node in doc.DocumentNode
.DescendantNodes()
.Single(x => x.Id == "body")
.DescendantNodes()
.Where(x => x.Name == "p"))
{
string text = node.InnerText;
lblTest2.Text = text;
}