Changeset 12327
- Timestamp:
- 2006-07-28T14:49:58+12:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/doc.pm
r12268 r12327 225 225 sub _escape_text { 226 226 my ($text) = @_; 227 228 227 # special characters in the gml encoding 229 228 $text =~ s/&/&/g; # this has to be first... … … 733 732 # Build up dublin_core metadata. Priority given to dc.* over ex.* 734 733 734 sub new_buffer_dc_section { 735 736 my $self = shift(@_); 737 my ($section, $version) = @_; 738 739 # build up string of dublin core metadata 740 $section="" unless defined $section; 741 742 my $section_ptr=$self->_lookup_section($section); 743 return "" unless defined $section_ptr; 744 foreach my $data (@{$section_ptr->{'metadata'}}){ 745 my $escaped_value = &_escape_text($data->[1]); 746 my $dc_element = $data->[0]; 747 748 my @array = split('\.',$dc_element); 749 my ($type,$name); 750 751 if(defined $array[1]) 752 { 753 $type = $array[0]; 754 $name = $array[1]; 755 } 756 else 757 { 758 $type = "ex"; 759 $name = $array[0]; 760 } 761 762 $all_text .= ' <Metadata Type="'. $type.'" Name="'.$name.'">'. $escaped_value. "</Metadata>\n"; 763 } 764 return $all_text; 765 } 766 767 735 768 sub buffer_dc_section { 736 769 my $self = shift(@_); … … 743 776 return "" unless defined $section_ptr; 744 777 778 745 779 my $explicit_dc = {}; 746 780 my $explicit_ex = {}; … … 748 782 my $all_text=""; 749 783 foreach my $data (@{$section_ptr->{'metadata'}}){ 784 foreach my $temp (@$data) 785 { 786 print "($temp) "; 787 } 788 print "\n"; 750 789 my $escaped_value = &_escape_text($data->[1]); 751 790 if ($data->[0]=~ m/^dc\./) { … … 821 860 my ($handle, $section, $version) = @_; 822 861 823 my $all_text = $self->buffer_dc_section($section,$version); 824 862 #my $all_text = $self->buffer_dc_section($section,$version); 863 my $all_text = $self->new_buffer_dc_section($section,$version); 864 825 865 print $handle $all_text; 826 866 } … … 836 876 837 877 while (defined $section && $section ne "") { 878 838 879 ($num, $section) = $section =~ /^\.?(\d+)(.*)$/; 839 $num =~ s/^0+(\d)/$1/; # remove leading 0s 880 881 $num =~ s/^0+(\d)/$1/ if defined $num ; # remove leading 0s 882 840 883 $section = "" unless defined $section; 841 884 885 842 886 if (defined $num && defined $sectionref->{'subsections'}->{$num}) { 843 887 $sectionref = $sectionref->{'subsections'}->{$num}; … … 1358 1402 } 1359 1403 1404 # returns a xml element of the form <MetadataList><Metadata name="metadata-name">metadata_value</Metadata>...</MetadataList> 1405 sub get_top_metadata_list{ 1406 my $self = shift (@_); 1407 1408 my @topmetadata =$self->get_all_metadata($self->get_top_section()); 1409 my $metadatalist ='<MetadataList>'; 1410 1411 foreach my $i (@topmetadata){ 1412 foreach my $j (@$i){ 1413 my %metaMap = @$j; 1414 foreach my $key (keys %metaMap){ 1415 $metadatalist .='<Metadata name='."\"$key\"".'>'.$metaMap{$key}.'</Metadata>'."\n"; 1416 } 1417 } 1418 } 1419 1420 $metadatalist .='</MetadataList>'; 1421 1422 return $metadatalist; 1423 } 1424 1425 1360 1426 # $value is optional 1361 1427 sub delete_metadata {
Note:
See TracChangeset
for help on using the changeset viewer.