我正在编写一个简单的 Perl 脚本,它使用 XML::Smart 创建和解析 XML 文件。我遇到了删除 XML 节点的问题。我有以下代码:
if ( exists $XML->{object}[$n] ) {
delete $XML->{object}[$n] ;
};
$XML->save('dane.xml') ;
它执行预期的操作 - 即删除正确的节点。但是,当我稍后尝试使用下面的代码(通常有效)列出所有节点(特定根的子节点)时:
my @objects = $XML->{object}('@') ;
foreach my $object (@objects) {
say "$object->{address}";
};
Perl 列出所有节点,直到被删除节点之前的节点,然后吐出以下错误:
Not a HASH reference at g:/Dwimperl/perl/site/lib/XML/Smart/Tie.pm line 48, <STDIN> line 2.
我很难过 - 我尝试使用 $XML->data(); 的各种排列;但没有一个工作。我更愿意继续使用 XML::Smart 来完成这个任务,所以我希望这个问题可以在这个特定的库中得到解决。