xml
  • perl
  • perl-data-structures
  • 2012-06-14 62 views 0 likes 
    0

    我正在使用通過使用打開,打印,關閉的典型功能寫入XML文件的Perl程序。 XML文件稍後將被PHP Web應用程序消解。在Perl中編寫和讀取XML的最佳方式是什麼?

    #!/usr/bin/perl 
    #opening file 
    open FILE, ">derp.xml" or die $!; 
    
    #data is created in variables like so... 
    $first  = '<\?xml version=\"1.0\" encoding=\"UTF-8\" \?>'; 
    $openperson = '<person>\n'; 
    $name  = '<name>Gary</name>\n'; 
    $birthday = '<brithday>01/10/1999</birthday>\n'; 
    $car   = '<car>minivan</car>\n'; 
    $closeperson = '</person>\n'; 
    
    #writing variables to file 
    print FILE $first; 
    print FILE $openperson; 
    print FILE $name; 
    print FILE $birthday; 
    print FILE $car; 
    print FILE $closeperson; 
    close FILE; 
    

    或多或少這基本上是當前系統的工作原理。我相信肯定有更好的辦法。

    +2

    的可能重複[我怎樣才能從Perl創建XML?](http://stackoverflow.com/questions/154762/how-can-i-create-xml-from-perl)。 –

    +0

    謝謝Sebastian,搜索前沒有看到這個問題。 –

    +2

    社區共識Task :: Kensho建議[XML :: LibXML](http://p3rl.org/XML::LibXML)。 – daxim

    回答

    6

    什麼是關於這些CPAN模塊:

    • XML ::的libxml
    • XML ::作家
    • XML ::簡單
    +0

    強調XML :: Simple。儘管這是個名字,但在這個特定的模塊中,我多年來一直在爭論很多XML。 – David

    +3

    獲取XML :: Simple來生成給定的消費者實際閱讀的東西可能非常困難。我推薦使用XML :: Twig,XML :: Writer,XML :: LibXML – hobbs

    +0

    XML :: Simple讓我的生活比下面的答案容易得多,謝謝:P –

    1

    我應該更努力搜索,Found the XML::Writer Here

    來自這裏的問題:How can I create XML from Perl?‌​

    塞巴斯蒂安施通普夫提醒我注意,

    語法如下

    #!/usr/bin/perl 
    
    use IO; 
    my $output = new IO::File(">derp.xml"); 
    
    use XML::Writer; 
    my $writer = new XML::Writer(OUTPUT => $output); 
    
    $writer->xmlDecl('UTF-8'); 
    $writer->startTag('person'); 
    $writer->startTag('name'); 
    $writer->characters("Gary"); 
    $writer->endTag(); 
    $writer->startTag('birthday'); 
    $writer->characters("01/10/1909"); 
    $writer->endTag(); 
    $writer->startTag('car'); 
    $writer->characters("minivan"); 
    $writer->endTag(); 
    $writer->endTag(); 
    $writer->end(); 
    

    產地:

    <?xml version="1.0" encoding="UTF-8"?> 
        <person> 
         <name>Gary</name> 
         <birthday>01/10/1909</birthday> 
         <car>minivan</car> 
        <person> 
    

    謝謝大家誰回答

    +1

    那個很奇怪。這不是真正的動態。如果你想要一個靜態結構,你也可以考慮[Text :: Template](http://search.cpan.org/~mjd/Text-Template-1.45/lib/Text/Template.pm)。無論如何,**請把它作爲一種習慣**來使用「嚴格」和「使用警告」。請。 :) – simbabque

    +0

    太棒了!謝謝你的提示 :) –

    相關問題