Ignore:
Timestamp:
2019-02-25T23:01:49+13:00 (5 years ago)
Author:
davidb
Message:

New option added to allow metadata values within CSV to be split into separate values

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/model-sites-dev/heritage-nz/collect/reports-2019/perllib/plugins/MetadataCSVPlugin.pm

    r32817 r32818  
    146146    my $separate_char = $self->{'csv_field_separator'};
    147147
     148    my $md_val_sep = $self->{'metadata_value_separator'};
     149    undef $md_val_sep if ($md_val_sep eq "");
     150
    148151    my @csv_file_lines = split(/\n/, $csv_file_content);
    149152    my $csv_file_field_line = shift(@csv_file_lines);
     
    198201        # Only bother with non-empty values
    199202        if ($md_val ne "" && defined($csv_file_fields[$i])) {
    200             if (!defined $csv_line_metadata{$csv_file_fields[$i]}) {
    201             $csv_line_metadata{$csv_file_fields[$i]} = [];
     203
     204            my $md_name = $csv_file_fields[$i];
     205
     206            if (!defined $md_name) {
     207            $csv_line_metadata{$md_name} = [];
    202208            }
    203             push (@{$csv_line_metadata{$csv_file_fields[$i]}}, $md_val);
     209
     210            if (defined $md_val_sep) {         
     211           
     212            my @within_md_vals = split(/${md_val_sep}/,$md_val);
     213            push (@{$csv_line_metadata{$md_name}}, @within_md_vals);
     214
     215#           foreach my $within_md_val (@within_md_vals) {
     216#               push (@{$csv_line_metadata{$md_name}}, $within_md_val);
     217#           }
     218            }
     219            else {
     220            push (@{$csv_line_metadata{$md_name}}, $md_val);
     221            }
    204222        }
    205223        }
Note: See TracChangeset for help on using the changeset viewer.