我的代码存在一些问题,我试图从页面中提取每个段落,但目前只选择最后一段。
这是我的代码。
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@id='body']/p"))
{
string text = node.InnerText;
lblTest2.Text = text;
}
答案 0 :(得分:4)
在循环中,您将获取当前节点innerText并将其分配给标签。你这样做是为了每个节点,所以当然你只看到最后一个 - 你没有保留以前的节点。
试试这个:
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@id='body']/p"))
{
string text = node.InnerText;
lblTest2.Text += text + Environment.NewLine;
}
答案 1 :(得分:1)
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;
}