C#,Html敏捷性,选择div标记中的每个段落

C#,Html敏捷性,选择div标记中的每个段落,c#,html,html-agility-pack,C#,Html,Html Agility Pack,例如,如何选择div标记中的每个段落 <div id="body_text"> <p>Hi</p> <p>Help Me Please</P> <p>Thankyou</P> 嗨 请帮帮我 谢谢你 我已经下载了Html Agility并在我的程序中引用,我所需要的只是段落。可能有不同数量的段落,也有不同的div标签,但我只需要body_文本中的内容。然后我假设它可以存储为一个字符串,然后我想将其写入一个.t

例如,如何选择div标记中的每个段落

<div id="body_text">
<p>Hi</p>
<p>Help Me Please</P>
<p>Thankyou</P>

请帮帮我

谢谢你

我已经下载了Html Agility并在我的程序中引用,我所需要的只是段落。可能有不同数量的段落,也有不同的div标签,但我只需要body_文本中的内容。然后我假设它可以存储为一个字符串,然后我想将其写入一个.txt文件以供以后参考。谢谢。

这里有一个解决方案,它将段落作为HtmlNodes的枚举:

HtmlDocument doc = new HtmlDocument();
doc.Load("your.html");
var div = doc.GetElementbyId("body_text");
var paragraphs = div.ChildNodes.Where(item => item.Name == "p"); 
没有显式Linq:

var paragraphs = doc.GetElementbyId("body_text").Elements("p");  

您案例的有效XPATH是
//div[@id='body\u text']/p

foreach(HtmlNode node in yourHTMLAgilityPackDocument.DocumentNode.SelectNodes("//div[@id='body_text']/p")
{
  string text = node.InnerText; //that's the text you are looking for
}
副本?另外,我不知道如何标记重复项……或者我没有足够的分数?