Привет, у меня есть такие xml-данные
<university>
<name>svu</name>
<location>ravru</location>
<branch>
<electronics>
<Section>
<student name="xxx" number="12">
<sem semister="1"subjects="7" rank="1"/>
<sem semister="2"subjects="4" rank="1"/>
<student>
<student name="xxx" number="15">
<sem semister="1"subjects="7" rank="10"/>
<sem semister="2"subjects="4" rank="1"/>
<student>
<student name="xxx" number="16">
<sem semister="1"subjects="7" rank="2"/>
<sem semister="2"subjects="4" rank="2"/>
<student>
</section>
</electronics>
</branch>
</university>
<university>
<name>sku</name>
<location>ANTP</location>
<branch>
<computers>
<Section>
<student name="xxx" number="12">
<sem semister="1"subjects="7" rank="no"/>
<sem semister="2"subjects="4" rank="no"/>
<student>
<student name="xxx" number="15">
<sem semister="1"subjects="7" rank="10"/>
<sem semister="2"subjects="4" rank="1"/>
<student>
<student name="xxx" number="16">
<sem semister="1"subjects="7" rank="20"/>
<sem semister="2"subjects="4" rank="21"/>
<student>
</section>
</electronics>
</branch>
</university>
Я использовал XML :: Simple, сгенерировал структурированные хэш-данные и сохранил их в переменной.Я использовал template :: toolkit для генерации pdffile (используя pdflatex). My XML :: simple output выглядит так10 учеников, у учеников только один сем, у кого два семестра, как этот. Я написал такой шаблон
my $template = Template->new();
my $filename = 'output.tex';
$template->process(\*DATA, $data, $filename)
|| die "Template process failed: ", $template->error(), "\n";
system( "pdflatex $filename" );
__DATA__
\documentclass[a4paper,leqno,twoside]{article}
\begin{document}
[% FOREACH st = university %]
[%+ st.name +%]
[%+ st.location +%]
[% FOREACH section = st.branch.electronics.section %]
branch student: [%+ section.name +%]
[%+ section.number +%]
[% FOREACH sem = section.sem %]
[%+ sem.semister +%]
[%+ sem.subjects +%]
[%+ sem.rank +%]
[% END %]
[% END %]
[% END %]
/end{document}
вот так, он дает вывод, но моя проблема слишком длинная, и я уже говорил выше в некотором разделеесть два студента, а в некоторых разделах более двух.например, первый раздел содержит 1 студента, а второй раздел содержит 10 таких студентов.но в первом разделе pdf также напечатано 10 учеников, только у первого ученика информация остаётся пустой.как я могу устранить эту проблему.Если вы не понимаете мою проблему, как я могу получить данные, используя более короткий код, чем я написал.есть ли другой способ получить все элементы ветвления с более простым использованием цикла for для элементов ветвления или любого простого кода. потому что если в каком-то разделе есть 60 учеников, значит, в каждом разделе печатается 6o.