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/CSVPlugin.pm

    r32817 r32818  
    130130    }
    131131    else {
    132         print STDERR "Error: Badly formatted CSV field line: $csv_file_field_line.\n";
     132    print STDERR "Error: Badly formatted CSV field line: $csv_file_field_line.\n";
    133133    }
    134134
     
    154154    my $separate_char = $self->{'separate_char'};
    155155
     156    my $md_val_sep = $self->{'metadata_value_separator'};
     157    undef $md_val_sep if ($md_val_sep eq "");
     158
    156159    my $csv = Text::CSV->new();
    157160    $csv->sep_char($separate_char);
     
    166169        # Only bother with non-empty values
    167170        if ($md_val ne "" && defined($csv_file_fields[$i])) {
    168         $doc_obj->add_utf8_metadata($section, $csv_file_fields[$i], $md_val);
     171        if (defined $md_val_sep) {
     172            my $md_name = $csv_file_fields[$i];
     173
     174            my @within_md_vals = split(/${md_val_sep}/,$md_val);
     175            foreach my $within_md_val (@within_md_vals) {
     176            $doc_obj->add_utf8_metadata($section, $md_name, $within_md_val);
     177            }
     178        }
     179        else {
     180            $doc_obj->add_utf8_metadata($section, $csv_file_fields[$i], $md_val);
     181        }
    169182        }
    170183    }
Note: See TracChangeset for help on using the changeset viewer.