读取XML模板时StringTemplate无效字符"<"

er4*_*z0r 8 html java xml template-engine stringtemplate

我正在尝试创建一个简单的XML模板,到目前为止只包含:

<?xml version="1.0"?>
Run Code Online (Sandbox Code Playgroud)

我读了这样的文件:

    STGroup group = new STGroupDir("templates");
    ST st = group.getInstanceOf("report");
    st.add("analysis", ana);
    String result = st.render();
    System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

结果是几条错误消息:

report.st 1:1: invalid character '<'
report.st 1:1: invalid character '?'
report.st 1:19: invalid character '?'
report.st 1:20: invalid character '>'
report.st 1:2: no viable alternative at input 'xml'
Run Code Online (Sandbox Code Playgroud)

我见过其他人阅读HTML tempaltes也使用标签.那么我做错了什么?

er4*_*z0r 5

好的,似乎我忽略了您需要使用其他snytax指定模板。尽管从我使用的示例来看这并不明显:

我的工作模板现在看起来有所不同:

report (analysis) ::= <<
<?xml version="1.0"?>
>>
Run Code Online (Sandbox Code Playgroud)

此外,我还更改了距离表:

STGroup group = new STGroupDir("templates",'$','$');
Run Code Online (Sandbox Code Playgroud)

  • 是的 尽管Terrence Parr一直在说StringTemplate是很好的模型/视图分离,但我无法想象一个可以为此而编写模板的设计师。 (2认同)