3
그래서 Amazon Web Services에서 반환 된 결과를 구문 분석 할 일부 펄을 작성했습니다. XML::Simple
패키지를 사용하고 있습니다. 대부분의 경우, 요소를 꺼낼 때 모든 것이 작동했습니다. 그러나, 내가 만난 문제는 엘리먼트가 속성을 가지고있을 때였 다. 그런 다음 항목이 해시라는 오류가 발생합니다.Perl로 XML 요소 및 속성 구문 분석
다음은 DVD의 실행 시간을 얻으려고 한 경우의 작업입니다. 방금이 일회용 항목에 대한 특정 정보를 저장할 항목을 만들었습니다.
// XML
<ProductGroup>DVD</ProductGroup>
<RunningTime Units="minutes">90</RunningTime>
// Perl to parse XML
my $item = $xml->XMLin($content, KeyAttr => { Item => 'ASIN'}, ForceArray => ['ASIN']);
$ProductGroup = $item->{Items}->{Item}->{ItemAttributes}->{ProductGroup};
if(ref($item->{Items}->{Item}->{ItemAttributes}->{RunningTime}) eq 'HASH'){
$RunningTimeXML = $xml->XMLin($content, KeyAttr => { Item => 'ASIN'}, NoAttr => 1);
$RunningTime = $RunningTimeXML->{Items}->{Item}->{ItemAttributes}->{RunningTime};
}
하나의 항목에서 요소와 속성을 모두 액세스 할 수있는 방법이 있습니까?
$item = {
'RunningTime' => {'content' => '90', 'Units' => 'minutes'},
'ProductGroup' => 'DVD'
};
따라서이 같은 실행 시간을 얻을 수 있습니다 :
$RunningTime = $item->{RunningTime}->{content}