Perl:将csv文件转换为xml

时间:2017-02-14 04:37:05

标签: perl

我试图解析csv文件并将其转换为XML。 .csv文件由条目列表组成,以逗号分隔。因此,两个示例条目如下所示:

AP,AB,A123,B123,,,
MA,NA,M123,TEXT,TEXT,TEXT_VALUE

某些字段在文件中为空,文件没有标题行。 任何建议如何与此相关。 Haven没有想出如何配合这个。 感谢。

1 个答案:

答案 0 :(得分:5)

print "<myXML>\n";
while (<>) {
  print "<aRow>$_</aRow>\n";
}
print "</myXML>\n";

或者,使用XML :: LibXML,如下所示:

#!/usr/bin/perl

use strict;
use warnings;

use XML::LibXML;

my $doc = XML::LibXML::Document->createDocument;

my $root = $doc->createElement('myXML');
$doc->setDocumentElement($root);
$root->appendChild($doc->createTextNode("\n"));

while (<>) {
  chomp;
  my $row = $doc->createElement('aRow');
  $root->appendChild($row);
  $row->appendChild($doc->createTextNode($_));
  $root->appendChild($doc->createTextNode("\n"));
}

print $doc->toString;

当然,如果你告诉我们输出应该是什么样子,我们可能会想出一些更复杂的东西!