Java如何将Xml转换成纯文本 FreeMaker

http://fmpp.sourceforge.net/

 

模板:

<#assign year=10 />

<#assign mgsy=1090.23 /><#assign mgsy2=19903200.23 />

${year}

每股收益                        ${mgsy?string?left_pad(20,'-')}

扣除非经常性损益后每股收益      ${mgsy2?string?left_pad(20,'-')}

<#assign bir=birthday?date?string />

公布日期:                      ${bir?left_pad(20,'-')}

 

Java代码:

package com.lidoo.xml2text;

import java.util.*;

import java.io.*;

import freemarker.core.*;

import freemarker.template.*;

 

public class Test {

public static void main(String[] args) throws IOException, TemplateException{

Configuration cfg = new Configuration(); 

// 指定模板文件从何处加载的数据源,这里设置成一个文件目录。 

cfg.setDirectoryForTemplateLoading(

       new File("D://ITBooks//Eclipse//Projects//Xml2Text//templates")); 

// 指定模板如何检索数据模型,这是一个高级的主题了… 

// 但先可以这么来用: 

cfg.setObjectWrapper(new DefaultObjectWrapper());

// 创建根哈希表 

Map root = new HashMap(); 

// // 在根中放入字符串"user" 

// root.put("user", "Big Joe"); 

// // 为"latestProduct"创建哈希表 

// Map latest = new HashMap(); 

// // 将它添加到根哈希表中 

// root.put("latestProduct", latest); 

// // 在 latest中放置"url"和"name"  

// latest.put("url", "products/greenmouse.html"); 

// latest.put("name", "green mouse"); 

Date birthday = new  java.util.Date();

root.put("birthday", birthday);

Template temp = cfg.getTemplate("GB0101.ftl");

// //cfg.setLocale(java.util.Locale.CHINESE);

Writer out = new OutputStreamWriter(System.out); 

temp.process(root, out); 

out.flush(); 

}

}

转换纯文本的关键:
(1) 在Eclipse中支持ftl文件,对齐方式,先是不精确。最好在记事本中检查一次。
(2) 使用left_pad函数进行右对齐时,判断字符长度时,没有考虑一个中文汉字显示占用两个英文字符宽度。需要另外实现!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值