XML file creation in Perl

后端 未结 2 1707
说谎
说谎 2021-01-22 01:22

My input file is

TBLA      COLA      A    B    
TBLA      COLB      D    E    
TBLB      COLX      M    N     
TBLB      COLD      A    B   
TBLC      COLD          


        
2条回答
  •  礼貌的吻别
    2021-01-22 01:32

    Given the very simple data structure, It seems a bit unneccessary to use a whole XML writer. However, I'll assume that that the table and column names are valid XML tag names.

    Here is a simple script that reads through the data without storing it in an intermediary data structure. It works with perl5 v10 and better.

    use strict; use warnings; use feature 'say';
    
    my $last_table;
    say '';
    while(<>) {
      chomp;
      my ($table, $col, $old, $new) = split /\t/;
      s/&/&/g, s/";
      } elsif ($last_table ne $table) {
        say "  ";
        say "  <$table>";
      }
      $last_table = $table;
      say "    <$col>";
      say "      $old";
      say "      $new";
      say "    ";
    }
    say "   if defined $last_table;
    say '';
    

提交回复
热议问题