我需要一些关于如何使用StringTemplate lib和Java创建嵌套模板的建议。
所以我的目标是创建一个类似于以下内容的XML文件:
<contacts>
<friends>
<close_friends>
<close_friend>friend1</close_friend>
<close_friend>friend2</close_friend>
...
</close_friends>
<acquaintances>
<acquaintance>Acquaintance1<acquaintance>
<acquaintance>Acquaintance2<acquaintance>
...
</acquaintance>
</friends>
<colleagues>
<colleague>Colleague1</colleague>
<colleague>Colleague2</colleague>
....
</colleagues>
</contacts>
因此,我打算使用StringTemplate作为模板语言(https://theantlrguy.atlassian.net/wiki/spaces/ST/pages/1409116/Five+minute+Introduction)和Java作为编程语言。
我想做的不是将所有内容都放入一个模板文件中,而是将其拆分:
我想拥有主要的模板联系人。st(g):
<contacts>
<friends>
<close_friends>
$close_friends:close_friend(); separator="\n"$
</close_friends>
<acquaintances>
$acquaintances:acquaintance(); separator="\n"$
</acquaintance>
</friends>
<colleagues>
$colleagues:colleague(); separator="\n"$
</colleagues>
</contacts>
对于密友,同事和熟人,我想使用单独的模板/组(close_friend.st(g); colleague.st (g);和相识。st(g))。
我想象(例如)close_friend.st(g)看起来像:
<close_friend>$friend.name$</close_friend>
所以我的第一个问题是:我是否为此使用StringTemplates或StringTemplateGroups?我见过人们使用这两种药物的情况非常相似,所以我不确定该如何服用。
我也不十分确定如何将信息从主模板contact.st(g)传递给其子对象,例如close_friends.st(g),因为我希望执行模板close_friends.st(g)对于我的主模板中列表的每个成员(包含密友)。