Получить элемент HTML на основе стиля в C # - PullRequest
0 голосов
/ 27 мая 2019

У меня есть HTML в строке и мне нужно использовать C # для извлечения конкретного узла на основе его стиля CSS. В прошлом я анализировал HTML с помощью HtmlAgilityPack. Это очень хорошо разбирает HTML и дает мне все элементы организованно. И я даже могу фильтровать или запрашивать по атрибутам. Проблема в том, что он не «понимает», как работает иерархия CSS. CSS может быть встроенным, в начале файла или в родительском узле. Браузер достаточно умен, чтобы знать, каким должен быть окончательный рендеринг элемента. HtmlAgilityPack может дать мне атрибуты определенного элемента, но я не вижу способа сказать мне, каким будет конечный стиль элемента. Например, элемент может не иметь каких-либо атрибутов, но все же иметь определенный стиль, основанный на более сложной логике CSS (стиль из родительского узла и т. Д.)

Как я могу запросить HTML в оперативной памяти, не используя браузер без заголовка, чтобы найти элементы, конечный рендеринг которых (если бы они были отображены в браузере) имели бы определенный стиль? (Аналогично тому, как это делает jQuery, например: $ ('[color = "# 0000ff"]')

Я не хочу много сложных регулярных выражений или подобия.

Спасибо

1 Ответ

0 голосов
/ 27 мая 2019

CSS (Cascading Style Sheet) использует для веб-приложения макет бабочки, это сайт с одним клиентом. Веб-страница с несколькими примерами CSS Внешнее, Внутреннее, Встроенное использование по мере необходимости. Каждый CSS работает для тех же целей, но поддерживает порядок. более высокий порядок - встроенный CSS , затем внутренний CSS и затем внешний CSS , мы получаем его внешний файл. Каждый селектор CSS - это не тот же пример, селектор идентификатора, класса, примыкания, родителя, родного брата и других. Прочитайте эту статью https://css -tricks.com / priordence-css-order-css-Affairs / .

Селектор jQuery и Селектор CSS - это одно и то же, но jquery работает по-разному, так как каждый jQuery CSS содержится в Встроенном CSS . из вашего запроса $('[color="#0000ff"]') является селектором атрибута. этот пример HTML <div color="#0000ff">content</div>, но это не seticesfy W3C. это также пользовательский атрибут html-элемента, который рекомендуется W3C для префикса пользовательского атрибута data- пример <div data-color="#0000ff">content</div> вы его получили http://html5doctor.com/html5-custom-data-attributes/.

- Спасибо -

...