ошибки в скрипте, которые генерируют латексный шаблон с использованием perl - PullRequest
0 голосов
/ 21 октября 2011

Я сгенерировал латексный шаблон, используя perl, и выполнил MikTeX, его генерирующий pdf.Но у меня есть некоторые проблемы.Я написал такой скрипт

  #!/usr/bin/env perl
     use strict;
     use warnings;
      use XML::Fast;
      use Template;

     my $xml = <<'XML';
              <student>
                 <number>24</number>
                 <education>bachelors</education>
                  <specialization>computers </specialization>
                   <address>
                    <house_number="128"/>
                     <street name="xxxx"/>
                    <proddutoor/>
                    </address>   
                </student>
                <student>
                 <number>23</number>
                  <education>ph.d.</education>
                   <specialization>physics </specialization>
                   <address>
                    <house_number="12"/>
                    <street name="xxxx"/>
                     <kadapa/>
                   </address>
                  </student>
                XML
           my $xml_hash = xml2hash $xml;

          my $template = Template->new();

           my $filename = 'output.tex';
    $template->process(\*DATA, $xml_hash, $filename)
      || die "Template process failed: ", $template->error(), "\n";

    system( "pdflatex $filename" );

       __DATA__
       \documentclass{article}

      \title{Roster}
       \author{pavani}

     \begin{document}
       \maketitle

    [% FOREACH st IN student %]
    Student [% st.number %] is a [% st.specialization %] [% st.degree %] student and          
     his address is[%address%][%house_number%][%street name%].
     [% END %]

     \end{document}

, когда я запускаю его, генерируя pdf и печатая так

 student 24 is a computers student and his address is HASH(0x274b27c)
    student 23 is a computers student and his address is HASH(0x274b27c)

, но мне нужно также напечатать адрес, как получить содержимое элемента address, например,это

        student 24 is a computers student and his address is 
                       house_number="128";
                       street name="xxxx";
                        proddutoor.
         student 23 is a computers student and his address is 
                     house_number="12";
                       street name="xxxx";
                     kadapa.

что мне нужно изменить, чтобы печатать вот так в формате pdf.

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

1 Ответ

2 голосов
/ 21 октября 2011

Вам нужно использовать [% st.address.house_number %] и [% st.address.street_name %].XML :: Fast создает вложенные хэши, которые отражают вложенные теги в вашем XML.

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