我正在编写一个简单的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 完成这项任务,所以希望能够在这个特定的库中解决这个问题。