Как получить содержимое <div>с помощью HtmlAgilityPack - C # - PullRequest
0 голосов
/ 14 марта 2019

У меня есть источник html:

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

Я хочу получить значение <div> (не <b> и только строку «Содержимое») с помощью HtmlAgilityPack.Каков наилучший способ сделать это?

Вот что я делаю.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 Ответ

1 голос
/ 14 марта 2019

Используйте 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());
}

Здесь: Fiddle: https://dotnetfiddle.net/mXFs8k

Я рекомендую вам обернуть ваш контент в теги <p> или <span> и т. Д., Затем вы можете легко настроить таргетинг на него с помощью HtmlAgilityPack.

...