--- trunk/all2xml.pl 2006/04/13 19:44:51 730
+++ trunk/all2xml.pl 2006/06/06 12:34:25 747
@@ -76,6 +76,9 @@
my $last_field_name; # cache to prevent repeated fields
+my $broken_cdata = XMLin(']]>') eq '>';
+warn "XML::Simple on this system seems broken with .\n" if ($broken_cdata);
+
sub data2xml {
use xmlify;
@@ -207,6 +210,7 @@
delete $x->{value};
delete $x->{delimiter};
$x->{content} = $v;
+ $d =~ s#>$## if ($d && $broken_cdata);
$x->{delimiter} = $d;
}
return $x;
@@ -488,7 +492,7 @@
if ($val) {
$display_data .= $delimiter.$val if ($d);
$swish_data .= " ".$val if ($s);
- $index->insert($field, $val, $path) if ($i);
+ $index->insert($field, $val, $val, $path) if ($i);
}
if ($iterate_by_page) {
@@ -705,6 +709,13 @@
my $tag = $cfg->val($database, 'import_xml_tag') || $type2tag{$type_base} || die "can't find which tag to use for type $type";
$config=XMLin($import_xml_file, ForceArray => [ $tag, 'config', 'format' ], ForceContent => 1 );
+ # check for broken XML::Simple
+ if ( $broken_cdata ) {
+ map {
+ $config->{format}->{$_}->{content} =~ s#>$##;
+ } keys %{ $config->{format} };
+ }
+
# helper for progress bar
sub fmt_time {
my $t = shift || 0;