获取xml字符串后先转化为 InputStream ,在使用freemarker.ext.dom.NodeModel.parse将InputStream转化为freemarker中识别的xml
InputStream in = new ByteArrayInputStream(xml.getBytes("UTF-8"));
InputSource ins=new org.xml.sax.InputSource(in);map.put("doc",freemarker.ext.dom.NodeModel.parse(ins));
或者直接加载xml文件 freemarker.ext.dom.NodeModel.parse(newFile("the/path/of/the.xml")));
可以在freemarker中使用list接收,假如xml为
<book title=“test book”>
<para>p1.1</para>
<para>p1.2</para>
<para>p1.3</para>
</book>
<#list doc.book as book>
获取到book的节点,获取title ,则通过 ${book.@title}获取
获取book的子节点则
<#list book.para as para>
${para}直接获取到节点
</list>
</list>