]> git.sesse.net Git - xml-template/blobdiff - tests/xml-diff.pl
Ignore xmlns stuff on both sides.
[xml-template] / tests / xml-diff.pl
index 861e6a37a408904a07b3e64db7bb786a0fc1972a..b99887fa6c6e1fd30b26c75914ca53d9dbad35a9 100644 (file)
@@ -40,6 +40,9 @@ sub compare {
        my ($nsuri1, undef, $lname1) = $nsup1->process_element_name($n1->getNodeName);
        my ($nsuri2, undef, $lname2) = $nsup2->process_element_name($n2->getNodeName);
 
+       $nsuri1 |= '';
+       $nsuri2 |= '';
+
        # compare element names
        unless ($nsuri1 eq $nsuri2 && $lname1 eq $lname2) {
                print STDERR "$nsuri1/$lname1 != $nsuri2/$lname2\n";
@@ -92,7 +95,8 @@ sub compare_attr_list {
                my $name = $attr1->getName;
                next if ($name =~ /^xmlns:(.*)$/);
                
-               my ($nsuri1, undef, $lname1) = $nsup1->process_attribute_name($n1->getName);
+               my ($nsuri1, undef, $lname1) = $nsup1->process_attribute_name($attr1->getName);
+               $nsuri1 |= '';
 
                if (!defined($attrs2)) {
                        # n2 has no attributes at all
@@ -102,7 +106,9 @@ sub compare_attr_list {
 
                my $attr2_found;
                for my $attr2 ($attrs2->getValues) {
-                       my ($nsuri2, undef, $lname2) = $nsup2->process_attribute_name($n2->getName);
+                       next if ($attr2->getName =~ /^xmlns:(.*)$/);
+                       my ($nsuri2, undef, $lname2) = $nsup2->process_attribute_name($attr2->getName);
+                       $nsuri2 |= '';
                
                        if ($nsuri1 eq $nsuri2 && $lname1 eq $lname2) {
                                $attr2_found = $attr2;
@@ -115,7 +121,7 @@ sub compare_attr_list {
                        last;
                }
 
-               if ($attr1->getValue ne $attr2->getValue) {
+               if ($attr1->getValue ne $attr2_found->getValue) {
                        print STDERR "Attribute $nsuri1/$lname1 has differing values\n";
                }
        }