Получить содержимое li при помощи xpath

197
28 января 2020, 13:20

Есть следующий кусок html

   <div class="full-story__top__info-fields">
                <ul>
                    <li itemprop="copyrightYear"><span>Год:</span> 2019</li>
                    <li itemprop="contributor"><span>Страна:</span> США</li> 
                    <li><span>Перевод:</span> Дубляж</li>
                    <li><span>Жанр:</span> фэнтези, боевик, приключения</li>
                    <li><span>Качество:</span> TS</li>
                    <li itemprop="director"><span>Режиссерский состав:</span> Нил Маршалл</li>
                    <li itemprop="actor"><span>В Ролях:</span> Дэвид Харбор, Иэн МакШейн, Милла Йовович, Марк Стэнли, Брин Глисон, Надя Керанова, Мария Тепавичарова, Ана Тобакова, Пенелопа Митчелл, Терри Рендал</li>
                    <li><span>Время:</span> 01:49:22</li>
</ul>
</div>

Необходимо получить значения, что идут после "перевод:", "жанр:" и "качество:". Пытался так:

//div[@class='full-story__top__info-fields' and contains(li, 'Перевод')]

Но возвращает Null.

Answer 1

А вам обязателен xpath? Для парсинга DOM-объектов HTML гораздо проще использовать HtmlAgilityPack, имхо.

UPD:

Попробуйте брать не SelectSingleNode, а все элементы списка, например так:

IEnumerable<string> liData = html.DocumentNode.SelectNodes(@"//div[@class='full-story__top__info-fields']/ul/li").Select(li => li.OuterHtml);

А затем, зная ваш html, брать нужные вам поля из коллекции.

READ ALSO
Странное поведение async/await в WinForms

Странное поведение async/await в WinForms

Разбираюсь в async/awaitВот такой код в WinForms (чтобы был UI-контекст):

255
Как передать события с окна в WPF на первое окно, находящееся под ним?

Как передать события с окна в WPF на первое окно, находящееся под ним?

Нужно создать окно для эффекта водяного знака на экранеВывести его поверх других окон и задать прозрачность получилось, но все события клика...

151
Как получить текущий сертификат

Как получить текущий сертификат

Настроил IIS на аутентификацию по смарт-карте по данной статье https://blogjayway

176