Как я могу выбрать каждый абзац в теге div, например.
<div id="body_text">
<p>Hi</p>
<p>Help Me Please</P>
<p>Thankyou</P>
У меня есть Html Agility, загруженная и упомянутая в моей программе. Все, что мне нужно, это абзацы. Там может быть переменное количество абзацев, и есть множество разных тегов div, но мне нужен только контент в body_text. Тогда я предполагаю, что это можно сохранить как строку, которую я тогда хочу записать в .txt-файл для последующей ссылки. Спасибо.
Действительным XPATH для вашего случая является //div[@id='body_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
}
Вот решение, которое захватывает абзацы как перечисление 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");