Thread XML, "Abschnitte" aus einer Datei miteinander vergleichen
(3 answers)
Opened by roli at 2012-07-06 12:14
Hi,
ich habe mich jetzt so wie ich Zeit hatte mit dem Thema beschäftigt, hier meine aktuelle Lösung: Code (perl): (dl
)
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 #!/usr/bin/perl 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 Code (perl): (dl
)
$xp->find('//ab3:prod0') ein RegEx mache, aber noch habe ich nicht gefunden wie. Ein Code (perl): (dl
)
$xp->find("//ab2:prod*") 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 |