如何使用 Template Toolkit 打印递归数据结构?
How to print recursive data structure with Template Toolkit?
我正在尝试使用 Template Toolkit 打印递归数据结构。我如何在我的模板文件中对此进行描述?
我有一个数据结构(哈希数组),其中包含一些像这样的元素
ELEMENT
-> Description: XYXY
-> Childs: [Array of Child ELEMENTS of same type]
其中 childs 可以包含子元素数组。我现在想递归地打印所有内容,包括元素 childs 和那些 childs 等等。
我怎样才能做到这一点?
您可以使用 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 %]
我正在尝试使用 Template Toolkit 打印递归数据结构。我如何在我的模板文件中对此进行描述?
我有一个数据结构(哈希数组),其中包含一些像这样的元素
ELEMENT
-> Description: XYXY
-> Childs: [Array of Child ELEMENTS of same type]
其中 childs 可以包含子元素数组。我现在想递归地打印所有内容,包括元素 childs 和那些 childs 等等。
我怎样才能做到这一点?
您可以使用 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 %]