私はCSVファイルを解析してXMLに変換しようとしています。 .csvファイルはカンマで区切られたエントリのリストで構成されています。したがって、2つのサンプルエントリは次のようになります。Perl:CSVファイルをxmlに変換する
AP,AB,A123,B123,,,
MA,NA,M123,TEXT,TEXT,TEXT_VALUE
一部のフィールドは空白で、ファイルにはヘッダー行がありません。 これにどう対応するかの提案。これと一緒に行く方法を理解していない。おかげさまで
私はCSVファイルを解析してXMLに変換しようとしています。 .csvファイルはカンマで区切られたエントリのリストで構成されています。したがって、2つのサンプルエントリは次のようになります。Perl:CSVファイルをxmlに変換する
AP,AB,A123,B123,,,
MA,NA,M123,TEXT,TEXT,TEXT_VALUE
一部のフィールドは空白で、ファイルにはヘッダー行がありません。 これにどう対応するかの提案。これと一緒に行く方法を理解していない。おかげさまで
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;
は、我々はおそらく、もう少し何かを思い付くことができ洗練された!
[Text :: CSV](http://search.cpan.org/~ishigaki/Text-CSV-1.91/lib/Text/CSV.pm)を使用して読んでから、xmlファイルをそれ。たとえば、[XML :: LibXML :: Document](http://)を使用する[XML :: LibXML](http://search.cpan.org/dist/XML-LibXML/LibXML.pod) search.cpan.org/dist/XML-LibXML/lib/XML/LibXML/Document.pod)。最初の場所に[XML :: Twig](http://search.cpan.org/~mirod/XML-Twig-3.49/Twig.pm)モジュールがあります。以前は[XML :: Writer](http://search.cpan.org/dist/XML-Writer/Writer.pm)が普及していましたが、私はそれについてよく分かりません。 – zdim
あなたのデータを整理したいと思う_how_を考え出す必要があります。あなたのXMLがどのように見えるか。 'XML :: LibXML'を使って書いてみると、おそらく便利な[SO post](http://stackoverflow.com/a/2934794/4653379)と別の[PerlMonks post](http://www.perlmonks .org /?node_id = 1026789)(これらのリンクは上記のコメントに収まりませんでした)。 – zdim
これは難しいことではありませんが、XMLはCSVよりもはるかに複雑です。だから少なくとも、あなたのXMLがどのように見えるかという考えが必要です。 – Sobrique