C#,Html Agility,選擇div標籤中的每個段落

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_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:

HtmlDocument doc = new HtmlDocument();
doc.Load("your.html");
var div = doc.GetElementbyId("body_text");
var paragraphs = div.ChildNodes.Where(item => item.Name == "p"); 



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因