我正在使用带有 freemarker 的 java 通过 FTL(模板文件)和 XML 生成 HTML 文件。我在多个文件中得到了结果,但每个文件都包含整个结果。我希望每个文件都包含自己的结果。为了给你更多的细节,看看我的java代码的这一部分:(解决方案应该很简单,但我找不到)
static void freemarkerDo(Map datamodel, String template) throws Exception{
try {
File file = new File("Avis.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
NodeList nodeLst = doc.getElementsByTagName("Avis");
Configuration cfg = new Configuration();
Template tpl = cfg.getTemplate(template);
for (int s = 0; s < nodeLst.getLength(); s++) {
Node fstNode = nodeLst.item(s);
if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
Element fstElmnt = (Element) fstNode;
NodeList flNmElmntLst = fstElmnt.getElementsByTagName("Filename");
Element flNmElmnt = (Element) flNmElmntLst.item(0);
NodeList flNm = flNmElmnt.getChildNodes();
FileWriter writer = new FileWriter(((Node) flNm.item(0)).getNodeValue()+".html");
try {
tpl.process(datamodel, writer);
}
finally{
writer.close();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
谢谢你的帮助。