您好我如何使用模板工具包阅读此信息
$var1= {
'STC'=>[
{
'gym'=>{
'hyd'=>{
'com'=>[
'dr'=>'1',
'typ'=>'z',
'bemo'=>{
'bm'=>'1',
'typ'=>'x',
'col'=>'red'
}
}
{
'dr'=>'12',
'typ'=>'a',
'bemo'=>{
'bm'=>'25',
'typ'=>'p',
'col'=>'red'
}
}
{
'dr'=>'23',
'typ'=>'k',
'bemo'=>{
'bm'=>'22',
'typ'=>'w',
'col'=>'blue'
}
}
{
'dr'=>'3',
'typ'=>'s',
'bemo'=>{
'bm'=>'9',
'typ'=>'B',
'col'=>'green'
}
}
}
}
]
};
我无法获得这种类型的复杂数据,保留了我解决的所有内容,我正在按照自己的意愿获得输出,但是这个问题让我很痛苦.请帮助我.
最佳答案
好的,所以你有一些数据,你期望它是什么样的?听起来很危险,你可以简单地在文本编辑器中打开并打印pdf或保存为rtf.显然这不是你的意思.
您需要以某种方式格式化数据.然后,转换将只是将您的数据应用于该格式.
正如我提到here,你可以制作一个LaTeX模板并用你的数据和Template::Toolkit
填充它,并使用LaTeX编译器进行编译.这会给你一个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/>
-<details>
<name="clar"/>
<age="20"/>
<sex="m"/>
</details>
</student>
<student>
<number>23</number>
<education>ph.d.</education>
<specialization>physics </specialization>
-<address>
<house_number="128"/>
<street name="xxxx"/>
<proddutoor/>
<address/>
-<details>
<name="joel"/>
<age="20"/>
<sex="m"/>
</details>
</student>
XML
my $xml_hash = xml2hash $xml;
my $template = Template->new();
my $filename = 'output.tex';
#I think the following is a holdover from a previous version
#as I cannot check right now, I will leave as a comment:
#open my $fh, '>', $filename;
$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.
[% END %]
\end{document}
注: XML :: Fast甚至可以很好地对付格式不佳的XML 🙂
相关文章
转载注明原文:如何使用Perl中的XML文件中的数据生成PDF文件? - 代码日志