2009-07-07 6 views
0

Twitter 친구의 일정에 대한 XML 파일을 얻으려면 cURL을 사용하고 있습니다. (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 루프에 대한 좋은 안내서를 찾지 못했습니다.

어떻게하면됩니까? 그것은 당신의 인 data.xml의 내용에 따라 달라집니다 -

더 일반적인 대답은 없습니다

답변

4

(터미널 친화적 인 환경에서 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를 얻을 수를 역 참조하고 반복을 통해 그것의 값은 hashref이기도하며, 각각을 $ unode에 할당한다.

인쇄용 Dumper $ unode를보고 다른 곳에서 사용할 수있는 것이 있는지 확인할 수도 있습니다. 는 또한 XML주의 : 간단한는 XML을 구문 분석하는 방법에 약간 까다로울 수있다 - docs

프로그래밍 펄 체크 아웃 - 때때로 당신은 당신이 원하는 배열을 만들 수 있도록 추가 매개 변수를 전달해야 할 수도 있습니다 9 장에서는 perl에서 서로 다른 중첩 데이터 구조를 소개합니다.

+0

API에 대한 링크를 따라 가면 거기에 있습니다. –

+0

좋아, 그냥보고 업데이트 된 – naumcho

+1

@Naumcho : 불법 복제 된 책에 대한 링크를 게시하지 마십시오. @Eric : Perl의 복잡한 데이터 구조에 대한 좋은 설명은'perldoc perldsc'를 참조하십시오. – Telemachus

관련 문제