Html 민첩성 팩 C # 단락 분석 문제

c# html html-agility-pack

문제

내 코드로 몇 가지 문제가 있는데, 페이지의 모든 단락을 가져 오려고하지만, 현재는 마지막 단락 만 선택하고 있습니다.

여기 내 코드가있다.

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@id='body']/p"))
{
  string text = node.InnerText;
  lblTest2.Text = text;
}

수락 된 답변

루프에서 현재 노드 innerText를 가져 와서 레이블에 지정합니다. 노드에이 작업을 수행하므로 마지막 노드 만 보게됩니다. 이전 노드는 보존하지 않습니다.

이 시도:

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@id='body']/p"))
{
  string text = node.InnerText;
  lblTest2.Text += text + Environment.NewLine;
}

인기 답변

IMO, XPath는 재미가 없습니다. 대신 LINQ 구문을 사용하는 것이 좋습니다.

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;
}



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.