package com.mooc.freemarkerXML; import java.io.IOException; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class XMLTest { public static Template getTemplate(String name){ Configuration cfg = new Configuration(); cfg.setClassForTemplateLoading(XMLTest.class, "/resources/"); Template template = null; try { template = cfg.getTemplate(name); } catch (IOException e) { e.printStackTrace(); } return template; } public static String process(String templatefile, Map<String, Object> param) throws IOException, TemplateException, Exception{ Template template = XMLTest.getTemplate(templatefile); StringWriter sw = new StringWriter(); template.process(param, sw); return sw.toString(); } public static void main(String[] args) { Map<String, Object> responseMap = new HashMap<String, Object>(); responseMap.put("id", "1"); responseMap.put("name", "红楼梦"); responseMap.put("author", "曹雪芹"); responseMap.put("year", "1862"); responseMap.put("price", "98"); String resp = null; try { resp = XMLTest.process("book.ftl", responseMap); } catch (Exception e) { e.printStackTrace(); } System.out.println(resp); } }
book.ftl
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id="${id}"> <name>${name}</name> <author>${author}</author> <year>${year}</year> <price>${price}</price> <address><#if address??>${address}</#if></address> </book> </bookstore>
XMLSerializer read()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了