Парсинг HTML (CsQuery, HAP) - C#
Формулировка задачи:
Приветствую! Как вывести данные класса "a.shedule-data ", а именно время без дочернего блока div.price_block?
Я нашел вариант (велосипед). Пример на CsQuery
Удаляю дочерний класс, и просто вывожу родителя...
И все бы хорошо, но так делать не есть хорошо. Из div "price_block" необходимо получать содержание определенного тега td.hall-td
В общем, как поступить?
<div class="d-right">
<a href="/reservation/?movieId=26100884&movId=2801" class="shedule-data ">
19:40
<div class="price_block">...</div>
</a>
<a href="/reservation/?movieId=26100926&movId=2801" class="shedule-data ">
20:30
<div class="price_block">...</div>
</a>
<a href="/reservation/?movieId=26101101&movId=2801" class="shedule-data ">
21:40
<div class="price_block">...</div>
</a>
<a href="/reservation/?movieId=26100927&movId=2801" class="shedule-data ">
23:40
<div class="price_block">...</div>
</a>
</div>
var web = CQ.CreateFromUrl("http://www.luxorfilm.ru/cinema/rostov-na-donu");
var kino_hall = web.Select(".shedule-data "); //проходим по всем классам "shedule-data "
if (kino_hall != null)
{
foreach (var k in kino_hall)
{
CQ div = web[".price_block"];
div.Remove(); //удаляем дочерний div
listBox1.Items.Add(k.InnerText); //выводим данные .класса "shedule-data " в тестовом виде
}
}<div class="price_block">
<div class="red-triangle">
</div>
<div class="price-cont">
<table class="pbWrap">
<tbody>
<tr>
<td class="hall-td">Зал 6 VIP</td>
<td class="price-td">Цена</td>
</tr>
<tr>
<td>Стандарт:</td>
<td>800p.</td>
</tr>
</tbody>
</table>
</div>
</div>
Решение задачи: «Парсинг HTML (CsQuery, HAP)»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HtmlAgilityPack;
namespace ConsoleApplication20
{
class Program
{
static void Main(string[] args)
{
string s = @"<div class=""d - right"">
<a href = ""/reservation/?movieId=26100884&movId=2801"" class=""shedule-data "">
19:40
<div class=""price_block"">...</div>
</a>
<a href = ""/reservation/?movieId=26100926&movId=2801"" class=""shedule-data "">
20:30
<div class=""price_block"">...</div>
</a>
<a href = ""/reservation/?movieId=26101101&movId=2801"" class=""shedule-data "">
21:40
<div class=""price_block"">...</div>
</a>
<a href = ""/reservation/?movieId=26100927&movId=2801"" class=""shedule-data "">
23:40
<div class=""price_block"">...</div>
</a>
</div>
";
HtmlDocument HD = new HtmlDocument();
HD.LoadHtml(s);
var strs = HD.DocumentNode.SelectNodes("//a[@class='shedule-data ']/text()[1]");
foreach (HtmlNode node in strs) Console.WriteLine(node.InnerText.Trim());
}
}
}