使用PerlXML::Simple访问xml数据
我有一些xml数据,转储如下所示:使用PerlXML::Simple访问xml数据,perl,Perl,我有一些xml数据,转储如下所示: $VAR1 = { 'Members' => [ { 'Age' => '19', 'Name' => 'Bob' }, { 'Ag
$VAR1 = {
'Members' => [
{
'Age' => '19',
'Name' => 'Bob'
},
{
'Age' => '18',
'Name' => 'Jane'
},
{
'Age' => '21',
'Name' => 'Pat'
},
{
'Age' => '22',
'Name' => 'June'
}
],
'Sports' => [
{
'Players' => '20',
'Name' => 'Tennis'
},
{
'Players' => '35',
'Name' => 'Basketball'
}
],
};
我已尝试使用以下代码打印数据:
foreach my $member (@($xml->{Members})) {
print("Age: $xml->{Age}");
}
但不断出现如下错误:
在使用“严格引用”时,不能将字符串(“4”)用作哈希引用
你知道为什么这行不通吗?你使用了错误的语法
# here ... and here
# V V
foreach my $member (@($xml->{Members})) { ... }
要取消引用,需要大括号{}
,而不是括号()
一旦您修复了该问题(我认为这是问题中的一个输入错误,而不是在您的实际代码中),您将:
foreach my $member ( @{ $xml->{Members} } ) {
print "Age: $xml->{Age}";
}
但这仍然是错误的。您想访问$member
,而不是整个$xml
结构,因为它没有年龄,不是吗
foreach my $member ( @{ $xml->{Members} } ) {
print "Age: $member->{Age}\n";
}
那会给你
Age: 19
Age: 18
Age: 21
Age: 22
您使用了错误的语法
# here ... and here
# V V
foreach my $member (@($xml->{Members})) { ... }
要取消引用,需要大括号{}
,而不是括号()
一旦您修复了该问题(我认为这是问题中的一个输入错误,而不是在您的实际代码中),您将:
foreach my $member ( @{ $xml->{Members} } ) {
print "Age: $xml->{Age}";
}
但这仍然是错误的。您想访问$member
,而不是整个$xml
结构,因为它没有年龄,不是吗
foreach my $member ( @{ $xml->{Members} } ) {
print "Age: $member->{Age}\n";
}
那会给你
Age: 19
Age: 18
Age: 21
Age: 22
以防万一,你还没有被这句话打倒:我不知道你在这里抄写代码时的打字错误是什么。这不是生成此错误消息的代码。我也不能复制它。无论如何,正确的语法是非常清楚的。以防万一你还没有被这句话打倒:我不知道你在这里抄写代码时的拼写错误是什么。这不是生成此错误消息的代码。我也不能复制它。无论如何,正确的语法非常清楚。