Как мне создать шаблон XML в Perl? - PullRequest
2 голосов
/ 20 августа 2009

XML-файл, который мне нужно создать, похож на

<file>
     <state>$state</state>
     <timestamp>$time</timestamp>
     <location>$location</location>
          ....
</file>

Я не хочу использовать несколько отпечатков для создания необходимого XML-файла, я ожидаю, что у меня будет шаблон, который определяети структура, и формат XML.

Затем, когда создаете файл XML, мне просто нужно предоставить фактические значения для переменных в шаблоне и записать указанный шаблон во вновь созданный файл один раз, только один раз..

Ответы [ 3 ]

8 голосов
/ 20 августа 2009

использование HTML::Template.

#!/usr/bin/perl

use strict;
use warnings;

use HTML::Template;

my $template_text = <<EO_TMPL;
<TMPL_LOOP FILES>
<file>
     <state><TMPL_VAR STATE></state>
     <timestamp><TMPL_VAR TIME></timestamp>
     <location><TMPL_VAR LOCATION></location>
</file>
</TMPL_LOOP>
EO_TMPL

my $tmpl = HTML::Template->new( scalarref => \$template_text );

$tmpl->param(
    FILES => [
    { state => 'one', time => 'two', location => 'three' },
    { state => 'alpha', time => 'beta', location => 'gamma' },
]);

print $tmpl->output;

Выход:

<file>
     <state>one</state>
     <timestamp>two</timestamp>
     <location>three</location>
</file>

<file>
     <state>alpha</state>
     <timestamp>beta</timestamp>
     <location>gamma</location>
</file>
5 голосов
/ 20 августа 2009

Вы можете использовать Template::Toolkit, чтобы сделать это

1 голос
/ 20 августа 2009

cpan имеет несколько XML-модулей, которые вы можете использовать.

Я предлагаю начать с XML::Simple или XML::API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...