【问题标题】:C#, Html Agility, Selecting every paragraph within a div tagC#, Html Agility, 选择 div 标签内的每个段落
【发布时间】:2011-06-11 21:16:09
【问题描述】:

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

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

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

【问题讨论】:

标签: c# html html-agility-pack


【解决方案1】:

适用于您的案例的有效 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
}

【讨论】:

    【解决方案2】:

    这是一个将段落作为 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");  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-24
      相关资源
      最近更新 更多