如何在Freeplane父节点中拼接所有子节点的匹配属性?
Freeplane Groovy脚本:子节点文本属性拼接问题
我在处理Freeplane的XML格式文件时,用Groovy脚本编写父节点公式,想要把子节点的文本属性拼接成字符串,但一直没能成功实现。官方帮助文档有公式用法说明,但没找到对应示例。
我的树形结构如下:
rootNode | +---child0 | | +--------+---child1 | +---child2
期望实现的属性配置效果:
rootNode: | +->attr[sum=children.sum(0){ it['size'].num0 }] | +->attr[colours=children.join(";"){ it['colour'].text }] | | +---child0: | | +->attr[colour='red'] | | +->attr[size=3] | | +--------+---child1: | +->attr[colour='green'] | +->attr[size=4] | +---child2: +->attr[colour='blue'] +->attr[size=5]
要求rootNode['sum'] == 12,rootNode['colours'] == 'red;green;blue'。
数值属性的求和已经成功实现(父节点sum属性正确显示12),但文本属性的拼接一直存在问题。
我尝试过以下公式,均报错:
=children.join(";"){ it['colour'].text } =children.join(";"){ it['colour'] } =children.text(){ it['colour'].join(";") } =children.gettext(){ it['colour'].join(";") } =children(){ it['colour'].join(";") } =children.details(){ it['colour'].join(";") }
目前只有下面这个公式能正常运行,得到正确的拼接结果:
=children.each{ it['colour'].text }.join(';')
求其他可行的实现方法?
内容的提问来源于stack exchange,提问作者skeetastax
相关产品推荐
相关产品推荐

