Hi,
ich habe mich jetzt so wie ich Zeit hatte mit dem Thema beschäftigt, hier meine aktuelle Lösung:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use XML::XPath;
use strict;
use warnings;
use Data::Dumper;
my $file = 'F://Daten//scripte//bsp.xml';
my $xp = XML::XPath->new(filename=>$file);
my $found_ab2="";
my $found_tobe="";
my $nodeset_ab2 = $xp->find('//ab2:prod0');
my $ab2_num_nodes = $nodeset_ab2->size;
foreach my $node_ab2 ($nodeset_ab2->get_nodelist) {
$found_ab2 = XML::XPath::XMLParser::as_string($node_ab2);
}
my $nodeset_ab3 = $xp->find('//ab3:prod0');
my $ab3_num_nodes = $nodeset_ab3->size;
foreach my $node_ab3 ($nodeset_ab3->get_nodelist) {
$found_ab3 = XML::XPath::XMLParser::as_string($node_ab3);
}
if ($found_ab2 eq $found_ab3) {
print "ab2 und ab3 sind gleich\n";
}
else {
print "ab2 und ab3 sind NICHT gleich\n";
print "Found ab2:\n $found_ab2 \n";
print "\nFound ab3:\n $found_ab3 \n";
}
print "Anzahl Nodes ab2: $ab2_num_nodes\n";
print "Anzahl Nodes ab3: $ab3_num_nodes\n";
Mir ist jetzt aber aufgefallen, das es in den XMLs Nodes wie
ab3:prod0
ab3:prod1
ab3:prod2
...
existieren. Die würde ich gerne mit ihrem "ab2" Partner vergleichen. Ich dachte mir, das ich aus dem
ein RegEx mache, aber noch habe ich nicht gefunden wie. Ein
bringt folgende Fehlermeldung:
Can't locate object method "size" via package "XML::XPath::Number" at ../xml_cmp.pl line
Danke
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2