我正在编写脚本来比较两个不同文件中<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');
祝你好运, Bhuvana
答案 0 :(得分: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";
}