我正在尝试使用Template Toolkit打印递归数据结构。我怎样才能在模板文件中对此进行描述?
我有一个数据结构(哈希数组),有一些这样的元素
ELEMENT
-> Description: XYXY
-> Childs: [Array of Child ELEMENTS of same type]
子项可以包含子元素数组。我现在想要递归地打印所有内容,包括子元素和子元素等等。
我怎样才能做到这一点?
答案 0 :(得分:5)
您可以使用PROCESS
将数据传递到BLOCK
,您可以递归执行此操作。例如:
[%
SET element = {
description = "A",
children= [
{
description= "AA",
children= [
{ description = "AAA" }
]
},
{
description= "AB",
children= [
{
description = "ABA",
children = [
{
description = "ABAA"
}
]
},
{ description = "ABB" }
]
}
]
};
%]
[% BLOCK show_element %]
[% my_element.description | html %]
[% IF my_element.children %]
<ul>
[% FOR child_element IN my_element.children %]
<li>[% PROCESS show_element my_element=child_element %]</li>
[% END %]
</ul>
[% END %]
[% END %]
[% PROCESS show_element my_element=element %]