XMinメモ
- ForceArray
配列前提で値を取っていく時
要素数1の場合、配列として読まれないのでForceArrayする
my $data = $xml->XMLin($target_file,ForceArray => ['playlist']);
while ($i<$MAX) {
my $Id = $data->{'List'}[$i]->{'Item'}->{'Id'};
$i++;
- 値チェック
空の要素がある場合リファレンスを返すのでスカラーであることを確認する
#xml
<List>
<Item>
<Id>1</Id>
<Value>test1</Value>
</Item>
<Item>
<Id></Id>
<Value>test2</Value>
#Dumper
$VAR1 = {
'Item' => [
{
'Value' => 'test1',
'Id' => '1'
},
{
'Value' => 'test2',
'Id' => {}
},
#perl
unless (ref $data->{'List'}[$i]->{'Item'}->{'Id'}){
...
}else{
# error
}