2013-07-19 2 views
0

Я пытаюсь использовать файл all.css, содержащий некоторые классы, и хочу получить файл green.css, содержащий только зеленые классы.Извлечь конкретные классы css в файл

Я использую perlCSS модуль, любые предложения о том, как я могу использовать его для поиска строк, содержащих .green и заканчиваются {, а затем извлечь блок CSS?

Я новичок в Perl, До сих пор я пытался просто напечатать строки селекторного соответствия «зеленого», но я не могу заставить его работать:

my $css = CSS->new({ 'parser' => 'CSS::Parse::Lite'}); 

print $styleSheetPath; 
$css->read_file($styleSheetPath); 

open my $fileHandle, ">>", "green.css" or die "Can't open 'green.css'\n"; 

#search for lines that contain .green and end { and then extract css block 
#and write to green.css 
serialize($css); 

sub serialize{ 
     my ($obj) = @_; 

    for my $style (@{$obj->{styles}}){ 
     print join "\n ", map {$_->{name}} @{$style->{selectors}}; 
     if (grep(/green/, @{$style->{selectors}})) { 
      print "green matches "; 
      print $_->{name}; 
     } 

     } 
} 
+0

@innaM отредактировал мой вопрос –

ответ

2

Это помогает читать documentation из программное обеспечение, с которым вы работаете. Вызовите метод get_style_by_selector с аргументом .green, чтобы найти стили.

use CSS qw(); 
my $css = CSS->new; 
$css->read_string('.red { clear: both; } .green { clear: both; }'); 
$css->get_style_by_selector('.green')->to_string; 
Смежные вопросы