2009-07-07 12 views
0

Ich verwende cURL, um die XML-Datei für meine Twitter Freundes Timeline zu erhalten. (API here.)Wie verwende ich Perl, um Twitter XML zu parsen?

Derzeit (obwohl ich für weitere Vorschläge offen sein würde) verwende ich Perl, um das XML zu analysieren. Dies ist das erste Mal, dass ich Perl benutze und ich weiß wirklich nicht, was ich mache. Derzeit ist mein Code:

#!/usr/bin/perl 
# use module 
use XML::Simple; 
use Data::Dumper; 
# Create object. 
$xml = new XML::Simple; 
# Read XML file. 
$data = $xml->XMLin("/tmp/data.xml"); 
# Print output. 
print Dumper($data); 

Jetzt möchte ich über die XML gehen und den Namen jeder Person auszudrucken und dann, was sie getwittert. Derzeit habe ich keine gute Anleitung für Perls foreach loop gefunden, wenn es eine komplizierte Datenstruktur wie diese gibt.

Wie kann ich das erreichen?

(Alle anderen Möglichkeiten, um die XML in einem Terminal-freundlichen Umgebung zu analysieren, wäre schön, ungefähr so ​​gut zu wissen)

Antwort

4

Es gibt keine allgemeine Antwort - es auf den Inhalt Ihrer data.xml abhängt. Für das Beispiel auf der Seite, die Sie tun können, die folgenden:

foreach my $unode (values %{$data->{status}}) { 
    print "$unode->{user}->{name} \t $unode->{created_at} \t $unode->{text} \n"; 
} 

Ausgang:

Doug Williams Tue Apr 07 22:52:51 +0000 2009   At least I can get your humor through tweets. RT @abdur: I don't mean this in a bad way, but genetically speaking your a cul-de-sac. 

Was sie tut, ist - den hashref ‚Status‘, dereferenziert, und dann iteriert genannt wird durch seine Werte, die auch Hashreffs sind, weisen sie jeweils $ unode zu.

Sie können sich auch print Dumper $ unode ansehen, um zu sehen, was dort noch verfügbar ist. auch, dass die XML beachten :: Simple ein wenig schwierig in sein kann, wie es xml parst - manchmal müssen Sie in zusätzliche Parameter zu übergeben, um es Arrays machen zu schaffen, wo Sie es wollen - die docs

Programming Perl überprüfen Kapitel 9 gibt Ihnen eine Einführung in die verschiedenen verschachtelten Datenstrukturen in Perl.

+0

Wenn Sie dem Link zur API folgen, ist er da. –

+0

ok, gerade gesehen und aktualisiert – naumcho

+1

@Naumcho: Veröffentlichen Sie keine Links zu Raubkopien. @Eric: Siehe 'perldoc perldsc' für eine gute Diskussion komplexer Datenstrukturen in Perl. – Telemachus

Verwandte Themen