Я пытаюсь использовать DOM сайта с использованием CSQuery. Если я открываю сайт в IE и проверяю элемент, его HTML немного отличается (порядок атрибутов и промежуток между значениями) с одного и того же сайта, загруженного с использованием метода CSQuery.CreateFromUrl. Например, существует стиль div, сгенерированный IE, как «style = margin-bottom: 0.5em;» и для одного и того же метода рендеринга CSQuery генерируется другой HTML-стиль = margin-bottom: 0.5em; [Без пробела:].Почему существует разница между IE с DOM и CSQuery DOM?
В результате, когда я создаю селектор для CSQuery, например «div [style = 'margin-left: 0.5em;»], это не работает, потому что внутренняя DOM CSQuery не имеет места между': 'и «0,5».
Моя проблема заключается в том, что пользователи моего приложения будут использовать IE для проверки элементов DOM и, следовательно, создания селекторов CSS для запроса DOM с использованием CSQuery. Для этого случая я могу удалить пробелы из селектора в моем коде, но я не хочу этого делать, потому что могут быть некоторые другие незначительные различия между другими селекторами.
Итак, есть ли способ убедиться, что CSQuery генерирует ту же DOM, что и IE? Я пробовал использовать CSQuery.Creat (HTML return by IE), но каким-то образом CSQuery по-прежнему форматирует HTML таким образом, который отличается от IE DOM.
Спасибо, Тони
Я пробовал различные комбинации HtmlParsingMode & HtmlParsingOptions в методе создания, но не использовал. А что касается сайтов, которые используют Ajax для загрузки дополнительного контента, как CSQuery.CreatFromUrl обрабатывает такие сайты и генерирует DOM для них? – TonyMull
Даже если я получаю html из моего элемента управления веб-браузером, а затем создаю объект CSQuery из этого html, он слегка изменяет/изменяет форматирование html ... – TonyMull
@TonyMull, если веб-сайт загружает что-то через AJAX, CsQuery не будет обрабатывать это. В в этом случае вам нужно выяснить URL-адрес и загрузить его самостоятельно. Пройти тест: Запустите свой URL-адрес в браузере VS и посмотрите, какой ответ он возвращает. Если это то же самое, что и в браузере, поэтому проблема в CsQuery, но если это не так ... – nazarkin659