/[webpac]/trunk/all2xml.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/all2xml.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 144 by dpavlin, Sun Nov 16 11:55:18 2003 UTC revision 153 by dpavlin, Sun Nov 16 22:42:41 2003 UTC
# Line 128  sub data2xml { Line 128  sub data2xml {
128                          my @index_data;                          my @index_data;
129                          my $index_filter;                          my $index_filter;
130    
131                            sub mkformat {
132                                    my $x = shift || die "mkformat needs tag reference";
133                                    my $data = shift || return;
134                                    my $format_name = x($x->{format_name}) || return $data;
135                                    my $fmt = x($config->{format}->{$format_name}->{content}) || die "<format name=\"$format_name\"> is not defined!";
136                                    my $format_delimiter = x($x->{format_delimiter});
137                                    my @data;
138                                    if ($format_delimiter) {
139                                            @data = split(/$format_delimiter/,$data);
140                                    } else {
141                                            push @data,$data;
142                                    }
143    
144                                    if ($fmt) {
145                                            my $nr = scalar $fmt =~ s/%s/%s/g;
146                                            if (($#data+1) == $nr) {
147                                                    return sprintf($fmt,@data);
148                                            } else {
149                                                    print STDERR "mkformat: [$data] can't be split on [$format_delimiter] to $nr fields!\n";
150                                                    return $data;
151                                            }
152                                    } else {
153                                            print STDERR "usage of link '$format_name' without defined format (<link> tag)\n";
154                                    }
155                            }
156    
157                          # while because of repeatable fields                          # while because of repeatable fields
158                          while ($swish || $display) {                          while ($swish || $display) {
159                                  ($swish,$display) = parse_format($type, $format,$row,$repeat_off++,$import2cp);                                  ($swish,$display) = parse_format($type, $format,$row,$repeat_off++,$import2cp);
# Line 161  sub data2xml { Line 187  sub data2xml {
187                                          if ($filter) {                                          if ($filter) {
188                                                  no strict 'refs';                                                  no strict 'refs';
189                                                  if ($display_data) {                                                  if ($display_data) {
190                                                          $display_data .= $delimiter.join($delimiter,&$filter($display));                                                          $display_data .= $delimiter.join($delimiter,mkformat($x,&$filter($display)));
191                                                  } else {                                                  } else {
192                                                          $display_data = join($delimiter,&$filter($display));                                                          $display_data = join($delimiter,mkformat($x,&$filter($display)));
193                                                  }                                                  }
194                                          } else {                                          } else {
195                                                  if ($display_data) {                                                  if ($display_data) {
196                                                          $display_data .= $delimiter.$display;                                                          $display_data .= $delimiter.mkformat($x,$display);
197                                                  } else {                                                  } else {
198                                                          $display_data = $display;                                                          $display_data = mkformat($x,$display);
199                                                  }                                                  }
200                                          }                                          }
201                                  }                                  }
# Line 293  print STDERR "reading ./import_xml/$type Line 319  print STDERR "reading ./import_xml/$type
319          my $type_base = $type;          my $type_base = $type;
320          $type_base =~ s/_.+$//g;          $type_base =~ s/_.+$//g;
321    
322          $config=XMLin("./import_xml/$type.xml", forcearray => [ $type2tag{$type_base}, 'config' ], forcecontent => 1);          $config=XMLin("./import_xml/$type.xml", forcearray => [ $type2tag{$type_base}, 'config', 'format' ], forcecontent => 1);
323    
324          # output current progress indicator          # output current progress indicator
325          my $last_p = 0;          my $last_p = 0;

Legend:
Removed from v.144  
changed lines
  Added in v.153

  ViewVC Help
Powered by ViewVC 1.1.26