2

2 つの異なるファイルの要素の属性値を比較するスクリプトを作成しており、属性値の<book>違いを見つける必要があります。XMLコードは次のようになります。比較が必要な属性は book 要素の 'revision' です:

<book fpi="9780133125900" status="PearsonML 9.8" revision="3">
<book fpi="9780133125900" status="PearsonML 9.8" revision="2">

誰でも確認して、Perl スクリプトで実行するようにアドバイスしてもらえますか。値を抽出しましたが、比較できませんでした。

##for extracting 'revision' vaue in file1
my $xp = XML::XPath->new(filename => $find);
my $hname = $xp->find('/book/@revision');
##for extracting 'revision' vaue in file2
my $xx = XML::XPath->new(filename => $find1);
my  $hnaee = $xx->find('/book/@revision');

よろしく、ブヴァナ

4

1 に答える 1

1

1 つの方法は、to_literal()関数を使用してノードセットから数値を抽出することです。スカラーへの参照を返すため、比較して逆参照します。

#!/usr/bin/env perl

use warnings;
use strict;
use XML::XPath;

#for extracting 'revision' vaue in file1
my $xp = XML::XPath->new(filename => $find);
my $hname = $xp->find('/book/@revision')->to_literal;
##for extracting 'revision' vaue in file2
my $xx = XML::XPath->new(filename => $find1);
my  $hnaee = $xx->find('/book/@revision')->to_literal;

if ( $$hname == $$hnaee ) { 
    print "Equal\n";
}
else {
    print "Not equal";
}
于 2013-07-19T06:13:47.123 に答える