Java 在android中使用具有自定义标记的区块模板引擎
我正在尝试在android中使用chunk。我需要这样的东西: 假设 以下是标签 标签:{“世界”:“世界”,“c”:“丹尼斯·里奇”,“苹果”:“乔布斯”} Input:HELLO{{world},C是由{{C}编写的,而java是由{java}编写的,hola 输出:HELLO WORLD,C是由Dennis Ritchie编写的,而java是由hola编写的。 总之Java 在android中使用具有自定义标记的区块模板引擎,java,android,template-engine,chunk-templates,Java,Android,Template Engine,Chunk Templates,我正在尝试在android中使用chunk。我需要这样的东西: 假设 以下是标签 标签:{“世界”:“世界”,“c”:“丹尼斯·里奇”,“苹果”:“乔布斯”} Input:HELLO{{world},C是由{{C}编写的,而java是由{java}编写的,hola 输出:HELLO WORLD,C是由Dennis Ritchie编写的,而java是由hola编写的。 总之 我需要一个像{{string}这样的自定义分隔符 i、 e 默认_标记_开始=“{{” 默认_标记_END=“}}” 而如果
public String process(String msg) {
Chunk c = new Chunk();
c.append(msg);
c.set("apple", "JOBS");
c.set("c", "Dennis Ritchie");
c.set("world", "WORLD");
return c.toString();
}
区块模板引擎目前不支持备用标记语法。此外,标记标记中的空白不会被忽略/丢弃 然而,这里有一个可能的桥接解决方案。只要标记名后面跟一个冒号,未提供的块标记将默认为空 因此,您的输入必须更改为有效的区块语法:
HELLO {$world:}, C is written by {$c:}, while java is written by {$java:}, hola.
如果您的模板语法不灵活(例如,您有一个预先存在的模板库,或者您真的不喜欢本机标记语法),您可以添加一个预处理步骤,在将{{this}}
附加到块模板之前,将其转换为{$this:}
区块库甚至提供了一个方便的函数,可以为您实现这一点(尽管如果输入与空白不一致,您可能需要重新实现它)
import com.x5.template.TemplateSet;
...
Chunk c = new Chunk();
String template = TemplateSet.convertTags(msg, "{{ ", " }}", "{$", ":}");
c.append(template);
c.set("apple", "JOBS");
c.set("c", "Dennis Ritchie");
c.set("world", "WORLD");
return c.toString();