如何选择div标签中的每个段落,例如。C#,Html Agility,选择div标签内的每个段落
<div id="body_text">
<p>Hi</p>
<p>Help Me Please</P>
<p>Thankyou</P>
我有Html Agility在我的程序中下载和引用,我需要的是段落。可能有不定数量的段落,并且有不同的div标签加载,但我只需要body_text内的内容。然后我认为这可以存储为一个字符串,然后我想写入一个.txt文件供以后参考。谢谢。
如何选择div标签中的每个段落,例如。C#,Html Agility,选择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");
复制http://stackoverflow.com/questions/2111332/select-all-ps-from-a-nodes-children-using-htmlagilit ypack?附:我不知道如何标记重复,或者我没有足够的分数? – Ozzy 2011-01-19 16:27:20