smooks使用freemarker模版
smooks-config.xml
1 <?xml version="1.0"?> 2 <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" 3 xmlns:core="http://www.milyn.org/xsd/smooks/smooks-core-1.3.xsd" 4 xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"> 5 6 <core:filterSettings type="SAX" /> 7 8 <ftl:freemarker applyOnElement="$document"> 9 <ftl:template>/DIP.ftl</ftl:template> 10 </ftl:freemarker> 11 12 </smooks-resource-list>
测试类
1 import java.io.File; 2 import java.io.FileWriter; 3 import java.util.Arrays; 4 import java.util.List; 5 6 import javax.xml.transform.Result; 7 import javax.xml.transform.stream.StreamResult; 8 9 import org.milyn.Smooks; 10 import org.milyn.container.ExecutionContext; 11 import org.milyn.payload.JavaSource; 12 import org.milyn.payload.StringSource; 13 14 import com.powere2e.model.StartD; 15 import com.powere2e.model.StartH; 16 import com.powere2e.model.StartS; 17 18 public class Test1 { 19 20 public static void main(String[] args) { 21 StartH startH=new StartH(""); 22 23 try { 24 Smooks smooks = new Smooks("smooks-config.xml"); 25 ExecutionContext executionContext = smooks.createExecutionContext(); 26 // FileWriter writer = new FileWriter(new File("d:cocococo22.xml")); 27 executionContext.setContentEncoding("GBK"); 28 executionContext.getBeanContext().addBean("H", startH); 29 smooks.filterSource(executionContext, new JavaSource(new StringSource("document")), new Result[] { new StreamResult(System.out)}); 30 } catch (Exception e) { 31 e.printStackTrace(); 32 } 33 34 } 35 36 }
下面的xml文件是配置ftl后生成文件,和上面的是不对应的
1 <?xml version="1.0"?> 2 <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" 3 xmlns:core="http://www.milyn.org/xsd/smooks/smooks-core-1.3.xsd" 4 xmlns:file="http://www.milyn.org/xsd/smooks/file-routing-1.2.xsd" 5 xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"> 6 7 <core:filterSettings type="SAX" /> 8 9 <ftl:freemarker applyOnElement="$document"> 10 <ftl:template>/DiPlatformUserInvoices.ftl</ftl:template> 11 <ftl:use> 12 <ftl:outputTo outputStreamResource="datasetSplitStream" /> 13 </ftl:use> 14 </ftl:freemarker> 15 16 <file:outputStream resourceName="datasetSplitStream" openOnElement="/"><!-- ftl:use Resource --> 17 <file:fileNamePattern>DI.xml</file:fileNamePattern><!-- 生成文件名 --> 18 <file:destinationDirectoryPattern>target</file:destinationDirectoryPattern><!-- 生成文件存放路径 --> 19 <!-- <file:listFileNamePattern>DI.lst</file:listFileNamePattern> --><!-- 生成一个lst文件 --> 20 21 <file:highWaterMark mark="2"/><!-- xml节点数 --> 22 </file:outputStream> 23 </smooks-resource-list>
浙公网安备 33010602011771号