这是一个简短的 XML 文件,其中 2 个节点具有相同的子节点(但具有 2 个不同的值)。
5000 用于节点 MIAMI
7777 用于节点 WASHINGTON
<country id="USA">
<city id="MIAMI" method="modify">
<attributes>
<number_people>5000</number_people>
<average_income>40</average_income>
</attributes>
</city>
<city id="WASHINGTON" method="modify">
<attributes>
<number_people>7777</number_people>
<average_income>40</average_income>
</attributes>
</city>
</country>
使用 Perl::Twig,我想检查节点 MIAMI 和 WASHINGTON 是否相同(具有相同的子节点和相同的值)。
这是我所做的,但它不起作用 ($M->children eq $W->children) 被发现是 TRUE。它应该是假的,因为“number_people”的值是不同的。
#!/usr/bin/perl -w
use warnings;
use XML::Twig;
my $t= XML::Twig->new;
my $v= XML::Twig::Elt->new;
$t-> parsefile ('file.xml');
my $M=$t->first_elt('city'); # retrieve node MIAMI
my $W=$M->next_sibling('city'); # retrieve node WASHINGTON
if ($M->children eq $W->children) {print "the two nodes are exactly IDENTICAL"; }