2013-07-19 18 views
0

J'essaie d'utiliser un fichier all.css contenant des classes et que vous souhaitez obtenir un fichier green.css contenant uniquement des classes vertes.Extrait des classes css spécifiques dans un fichier

J'utilise le module perlCSS, des suggestions sur comment puis-je l'utiliser pour rechercher des lignes qui contiennent .green et se terminent par { puis extraire le bloc css?

Je suis nouveau à Perl, Jusqu'à présent, j'essayé de simplement imprimer les lignes de sélection correspondant à « vert », mais je ne peux pas le faire fonctionner:

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 a modifié ma question –

Répondre

2

Il aide à lire le documentation du logiciel avec lequel vous travaillez. Appelez la méthode get_style_by_selector avec un argument .green pour rechercher les styles.

use CSS qw(); 
my $css = CSS->new; 
$css->read_string('.red { clear: both; } .green { clear: both; }'); 
$css->get_style_by_selector('.green')->to_string; 
Questions connexes