我有一个代码可以解析XML文件,编辑它们并保存它们(使用dom)。现在,我有一些文件具有 .ftl 扩展名。我已设法用给定的答案处理ftl文件(使用freemarker模板配置),但是,我无法将编辑的xml保存为FTL。
所有这些都是用Java编写的。关于如何实现问题的保存方面的任何建议?
再次,我想用Java处理,编辑然后保存FTL文件。
我附加了处理ftl文件的代码。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class FTLReader {
public static void main(String[] args) {
//Freemarker configuration object
Configuration cfg = new Configuration();
try {
//Load template from source folder
Template template = cfg.getTemplate(filename);
// Build the data-model
Map<String,Object> data = new HashMap<String,Object>();
JsonParser parser = new JsonParser();
//write code to get answers
Object obj = parser.parse(new FileReader("src/answers.txt"));
JsonObject jsonObject = (JsonObject) obj;
data.put("element1", jsonObject.get("element1"));
// Console output
Writer out = new OutputStreamWriter(System.out);
template.process(data, out);
out.flush();
/*write code to edit and save the ftl file
*
*
*
*
* */
// File output (the processed FTL file)
Writer file = new FileWriter (new File("C:\\FTL_helloworld.txt"));
template.process(data, file);
file.flush();
file.close();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
在几次阅读你的问题和评论后,我可能终于明白了你的目标。所以,你必须&#34;补丁&#34;代码开头filename
变量后面的文件(Template template = cfg.getTemplate(filename);
)。 FTL文件基本上是一个文本文件,因此您可以逐行处理它。然后,您必须使用新文件内容重新初始化模板,即再次执行template = cfg.getTemplate(filename);
。