@itgood

Как парсить с html атрибут HtmlAgilityPack?

мне нужно получить только icon_rank_60, не могу понять как
<li >
    <div class="position_status rank_down"><span>&ndash; 188</span></div>
    <div class="position_num">190758</div>
    <div class="rank_icon icon_rank_60"></div>
    <div class="nickname">-Гендзи.</div>
</li>

вот что есть
HtmlAgilityPack.HtmlDocument hap = new HtmlAgilityPack.HtmlDocument();
                            hap.LoadHtml(rank1);
                            HtmlAgilityPack.HtmlNodeCollection nodes = hap.DocumentNode.SelectNodes("//div");
                            if (nodes != null)
                                foreach (HtmlAgilityPack.HtmlNode node in nodes)
                                    node.GetAttributeValue("class", null);


помогите !
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
@choupa
Архитектор (обычный, который строит)
C# не знаю, но регулярным выражением некошерно что ли?
/<\s*div\s+class\s*=.*icon_rank_60.*><\s*\/\s*div*\s>/
Ответ написан
Комментировать
qertis
@qertis
Это работает так:
string html = "http://site.domain";
HtmlDocument HD = new HtmlDocument();

var web = new HtmlWeb
{
  AutoDetectEncoding = false,
  OverrideEncoding = Encoding.UTF8,
};
HD = web.Load(html);

// Собственно, здесь и производится выборка интересующих нам нодов
// В данном случае выбираем блочные элементы с классом eTitle
HtmlNodeCollection NoAltElements = HD.DocumentNode.SelectNodes("//div[@class='eTitle']");

// Проверяем наличие узлов
if (NoAltElements != null)
{
  foreach (HtmlNode HN in NoAltElements)
  {
    // Получаем строчки
    string outputText = HN.InnerText;
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы