如何使用HtmlAgilityPack获取<div>的内容-C#

时间:2019-03-14 14:03:38

标签: c# html-agility-pack

我有html来源:

<div class="lit-plot">
    <b class="red">خلاصه داستان :</b>
Content
</div>

我想用HtmlAgilityPack获得<div>的值(不是<b>,而是字符串“ Content”)。最好的方法是什么?

这是我在做什么。 movieDesHTMLSource被指定为html源。我不知道如何访问InnerHtml

string movieDes;

//Exctact the movie's description HTML source
var movieDesHTMLSource = new HtmlAgilityPack.HtmlDocument();
movieDesHTMLSource.LoadHtml(postPageHTMLDes[95].InnerHtml);   
var src = movieDesHTMLSource.DocumentNode.SelectNodes("//div[contains(@class,'lit-plot')]");

1 个答案:

答案 0 :(得分:1)

使用Xpath text()仅检索div标记内的文本。

var html = @"<body>
           <div class='lit-plot'>
                <b class='red'>خلاصه داستان :</b>
            Content
        </div>
        </body>";

var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var htmlNodes = htmlDoc.DocumentNode.SelectNodes("//div[contains(@class,'lit-plot')]/text()");
foreach (HtmlNode node in htmlNodes)
{
    Console.WriteLine(node.InnerText.Trim());
}

在这里拨弄:https://dotnetfiddle.net/mXFs8k

我建议您将内容包装在<p><span>等标签中,然后可以使用HtmlAgilityPack轻松地将其定位。