这是我的XML格式:
<A>
<B>
<C>..</C>
<D>..</D>
<E>..</E>
</B>
</A>
下面是我的代码:
use strict;
use warnings;
use Data::Dumper;
use XML::Simple;
open(my $fh, '<', '/tmp/abc.xml');
my $xml = new XML::Simple;
my $data = $xml->XMLin($fh) or die "Failed to find $fh";
my $value = $data->{'B'};
print $value->{'C'}
给出错误:
不是HASH引用。
你能解释一下我哪里做错了吗?
1条答案
按热度按时间t2a7ltrp1#
你在以下几个方面犯了错误:首先,使用一个过时的XML解析模块,其文档中充满了警告不要使用它,并且没有使用一个XML表达式来获取你想要的数据。下面的代码使用了
XML::LibXML
:或者使用
XML::Twig
: