Разобрать CSS из <style>элементов - PullRequest
0 голосов
/ 08 июня 2010

Может кто-нибудь сказать мне эффективный метод получения CSS между тегами на странице разметки в .NET?

Я придумал метод, который использует рекурсию, Split () и CompareTo ()но это действительно затянуто, и я уверен, что должен быть гораздо более короткий (и более умный) способ сделать то же самое.

Пожалуйста, имейте в виду, что возможно иметь более одного элемента настраница, и этот элемент может быть либо или.

Ответы [ 3 ]

3 голосов
/ 08 июня 2010

Я бы, наверное, выбрал HTML Agility Pack , который дает вам доступ в стиле DOM к страницам. Было бы в состоянии выбрать ваши куски данных CSS, но на самом деле не анализировать эти данные в пары ключ / значение. Вы можете получить соответствующие фрагменты HTML, используя выражения стиля X-Path.

Редактировать: Пример типичного использования Html Agility Pack показан ниже.

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
var nodes = doc.DocumentElement.SelectNodes("//a[@style"]);
//now you can iterate over the selected nodes etc
1 голос
/ 08 июня 2010

Вот синтаксический анализатор C # CSS.Должен делать то, что вам нужно.

http://www.codeproject.com/KB/recipes/CSSParser.aspx

0 голосов
/ 08 июня 2010

Попробуйте Regex.

Гото: http://gskinner.com/RegExr/ Вставьте HTML с CSS и используйте это выражение вверху:

<style type=\"text/css\">(.*?)</style>

вот версия c #:

using System.Text.RegularExpressions;

Match m = Regex.Match(this.textBox1.Text, "<style type=\"text/css\">(.*?)</style>", RegexOptions.Singleline);

if (m.Success)
{
    string css = m.Groups[1].Value;
    //do stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...