Ta bort de oönskade iTunes-låtar från datorn (6 / 10 steg)
Steg 6: Använda reguljära uttryck till iTunes manus
När man läser XML-kod, är vissa tecken, till exempel snedstreck, stött på ganska ofta. Därför vi kommer att dra fördel av faktumet att m / operatör låt oss väljer du vilken avgränsare du vill i koden (vi kommer att använda hakparenteser, även om andra avgränsare säkerligen kommer att fungera)
Först och främst, vi bara måste läsa en del av full iTunes XML-filen. Delar av filen som innehåller information som spellistor, etc. är inte nödvändiga. Den första raden i avsnittet spellistor, som kommer efter låtinformation, ser ut som följande:
< nyckel > spellistor < / nyckel >
Därför i ett tag loop, kan vi lägga i ett uttalande som hoppar till slutet av filen läsa om denna linje påträffas.
medan (< kommandotolken >) {#loop_instructions_here senaste if ($_ = ~ m [< nyckel > spellistor </nyckel >])}
Därefter för att bygga hashen IDs, kan vi använda en if-elsif träd för att bygga vår databas hashes, med minne match variabler vi lärt oss om i föregående steg att spara värdena i hashvärden:
om ($_ = ~ m [< nyckel > (\d+) < / nyckel >]) {$id = $1;} elsif ($_ = ~ m [< nyckel > Rating < / nyckel >< heltal > (\d+) < / heltal >]) {$rate_hash {$id} = $1;} elsif ($_ = ~ m [< nyckel > namn < / nyckel >< sträng >(.+) < / sträng >]) {$name_hash {$id} = $1;} elsif ($_ = ~ m [< nyckel > konstnär < / nyckel >< sträng >(.+) < / sträng >]) {$art_hash {$id} = $1;} elsif ($_ = ~ m [< nyckel > plats </nyckel >< sträng > file://localhost(.*) < / sträng >]) {$loc_hash {$id} = $1;}
Nu när vi har byggt grunden för vår hash-databas, kommer vi att täcka att lokalisera och ta bort 1-stjärniga filer, så framåt till nästa steg!