Stap 6: Reguliere expressies toe te passen op de iTunes Script
Bij het lezen van XML-code, worden bepaalde tekens, zoals de slash, vrij vaak aangetroffen. Dus, we zullen profiteren van het feit dat de m / / exploitant laten we u kiezen welke gewenste scheidingstekens in de code (we zullen gebruiken tussen vierkante haakjes, hoewel andere scheidingstekens zal zeker werken)
Eerst moet van, we alleen te lezen van een deel van het volledige iTunes XML-bestand. Delen van het bestand met informatie zoals afspeellijsten, etc. zijn niet nodig. De eerste regel van het gedeelte van de afspeellijsten, dat na de nummerinformatie komt, ziet er als volgt uit:
< sleutel > Playlists < / sleutel >
Dus, in een tijdje lus, die we kunnen toevoegen in een verklaring die springt naar de einde van het bestand lezen als die lijn wordt aangetroffen.
while(<XML_FILE>) { #loop_instructions_here last if($_ =~ m[<key>Playlists</key>])}
We kunnen vervolgens om te bouwen van de hash IDs, een boom als-elsif gebruiken om bouwen onze database hashes, met behulp van het geheugen wedstrijd variabelen in de vorige stap kennisgemaakt opslaan van waarden in de ragout:
if($_ =~ m[<key>(\d+)</key>]) { $id = $1; } elsif($_ =~ m[<key>Rating</key><integer>(\d+)</integer>]) { $rate_hash{$id} = $1; } elsif($_ =~ m[<key>Name</key><string>(.+)</string>]) { $name_hash{$id} = $1; } elsif($_ =~ m[<key>Artist</key><string>(.+)</string>]) { $art_hash{$id} = $1; } elsif($_ =~ m[<key>Location</key><string>file://localhost(.*)</string>]) { $loc_hash{$id} = $1; }
Nu dat we de basis van onze hash-database hebben opgebouwd, zullen we dekken opsporen en verwijderen van 1-ster bestanden, dus verder met de volgende stap!