저는 PERL을 배우고 있습니다. 필자는 XML 구문 분석에 대한 몇 가지 문서를 읽고 동료 코드를 재사용했습니다. 그러나 나는이 데이터에서 3 명의 축구 선수 명단을 간단하게 인쇄 할 수는 없다. 도와주세요. 다음은 PERL 코드입니다.Perl XML 데이터를 통한 구문 분석
#! /usr/bin/perl -w
use strict;
use DBI;
use XML::Simple;
use LWP::UserAgent;
use HTTP::Request;
use Time::gmtime;
use Time::Local;
use Data::Dumper;
sub statsInit(){
my $xml_api_url = "http://myprovider.com/nfldata.xml";
my $xml = getXML($xml_api_url);
my $xmlData = xml2Simple($xml);
print "Hello World";
foreach my $player (@{$xmlData->{player}}){
my $playername = $player->{name};
print "pn = $playername | ";
}
}
sub getXML($){
my ($xmlURL) = @_;
my $dataresponse = '';
my $agent = LWP::UserAgent->new(env_proxy => 1, keep_alive => 1, timeout => 100);
my $header = HTTP::Request->new(GET => $xmlURL);
my $request = HTTP::Request->new('GET', $xmlURL, $header);
my $response = $agent->request($request);
if($response->is_success){
$dataresponse = $response->content(); #Loaded data from FINAL_XML
}
return $dataresponse;
}
sub xml2Simple(){
my ($xml) = @_;
my $xmlObj = XML::Simple->new(KeyAttr => {});
my $xmlData = '';
my $parsedData = '';
if($xml){
$xmlData = $xmlObj->XMLin($xml);
}
return $xmlData;
}
statsInit();
-------- NOW BELOW IS THE RETRIEVED XML DATA --------
<season xmlns="http://myprovider.com/schema/nfl/statistics-v1.0.xsd" season="2012" season_type="REG">
<team id="BUF" name="Bills" market="Buffalo">
<players>
<player id="100" name="Nick Barnett" games_played="1" games_started="1" jersey="50" position="OLB">
<defense tackle="7" ast="2" />
</player>
<player id="101" name="Ryan Fitzpatrick" games_played="1" games_started="1" jersey="14" position="QB">
<rushing att="2" yds="8" />
<passing att="32" cmp="18" yds="195" td="3" int="3"/>
</player>
<player id="102" name="Fred Jackson" games_played="1" games_started="1" jersey="22" position="RB">
<rushing att="6" yds="15" td="0"/>
</player>
</players>
</team>
</season>
내 코드는 데이터를 검색하는 것으로 보이며 오류가 없습니다. "Hello World"가 인쇄됩니다. 그러나 결코 플레이어 루프에 들어가서 플레이어 이름을 인쇄하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
언어 이름은 "Perl"입니다. – ikegami
코드 어디에도'-> {players}'가 보이지 않습니다 ... – ikegami