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は合法ですか? はい、理由を学ぶ