XMLファイルを作成および解析するためにXML :: Smartを使用する単純なPerlスクリプトを作成しています。 XMLノードを削除する際に問題が発生しました。私は、次のコードを持っている:PerlとXML :: Smart - 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はその後、削除された1前のいずれかに、すべてのノードをリストアップし、 ;)(私は$ XML->データのさまざまな順列を使用してみました - 私は困惑
Not a HASH reference at g:/Dwimperl/perl/site/lib/XML/Smart/Tie.pm line 48, <STDIN> line 2.
:次のエラーを吐き出しますしかし、何も働いていない。私はこの作業にXML :: Smartを使い続けることを望んでいるので、この問題がこの特定のライブラリで解決できることを願っています。
良い最初の質問! – slm
+1私はslmに同意します - これは上品に書かれています – Borodin