]> git.sesse.net Git - xml-template/commitdiff
Check the contents of text nodes when diffing.
authorsgunderson@bigfoot.com <>
Wed, 6 Sep 2006 14:04:38 +0000 (16:04 +0200)
committersgunderson@bigfoot.com <>
Wed, 6 Sep 2006 14:04:38 +0000 (16:04 +0200)
tests/xml-diff.pl

index 970b6589cf35124efb8a52976e42be3f9b009c2c..22b828ae4f14782770f3de60feb28411a616b38a 100644 (file)
@@ -58,6 +58,23 @@ sub compare {
        compare_attr_list($attrs1, $attrs2, $nsup1, $nsup2) if (defined($attrs1));
        compare_attr_list($attrs2, $attrs1, $nsup2, $nsup1) if (defined($attrs2));
 
+       # if this is a text node, check the contents
+       if ($n1->getNodeType == XML::DOM::TEXT_NODE) {
+               my $d1 = $n1->getData;
+               my $d2 = $n2->getData;
+
+               # ignore leading/trailing whitespace
+               $d1 =~ s/^\s+//;
+               $d2 =~ s/^\s+//;
+               $d1 =~ s/\s+$//;
+               $d2 =~ s/\s+$//;
+
+               if ($d1 ne $d2) {
+                       print STDERR "$nsuri1/$lname1 has differing textual content\n";
+                       exit(1);
+               }
+       }
+
        # this element is ok, let's compare all children
        my $c1 = $n1->getChildNodes;
        my $c2 = $n2->getChildNodes;