2009-07-07 71 views
0

我使用cURL來獲取我朋友的時間軸Twitter的XML文件。 (API here。)如何使用Perl來解析Twitter XML?

目前(雖然我會打開更多的建議)我使用Perl來解析XML。這是我第一次使用Perl,我真的不知道我在做什麼。目前,這是我的代碼:

#!/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); 

現在我想通過XML並打印出每個人的名字,然後他們啾啾。目前我還沒有找到一個很好的關於Perl的foreach循環的指南,當有這樣一個複雜的數據結構。

我該如何做到這一點?

(任何其他的方式來解析在終端環境友好的XML將是很好的瞭解以及)

回答

4

有沒有通用的答案 - 這取決於你data.xml中的內容。 對於在頁面上你可以做的例子如下:

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

輸出:

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. 

它所做的是 - 它得到所謂的「地位」的hashref,取消引用它,然後遍歷它的值也是hashrefs,將它們分配給$ unode。

您還可以查看打印自卸車$ unode看到的是還有什麼可那裏。 還要注意的是XML ::簡單的可以在它是如何解析XML有點棘手 - 有時你可能需要額外的參數傳遞,使之創造,你想讓它陣列 - 檢查出docs

的Perl編程第9章介紹了perl中不同的嵌套數據結構。

+0

如果你關注API的鏈接,它就在那裏。 – 2009-07-07 22:24:39

+0

好吧,只是看到它並更新 – naumcho 2009-07-07 22:53:07